{"id":672,"date":"2020-05-23T20:01:06","date_gmt":"2020-05-23T17:01:06","guid":{"rendered":"https:\/\/ek.oa.edu.ua\/Kukhta\/test3\/?p=672"},"modified":"2020-05-23T20:01:06","modified_gmt":"2020-05-23T17:01:06","slug":"perevantazhennia-i-mahichni-metody","status":"publish","type":"post","link":"https:\/\/ithub.oa.edu.ua\/webdev\/php\/perevantazhennia-i-mahichni-metody\/","title":{"rendered":"\u041f\u0435\u0440\u0435\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0456 \u043c\u0430\u0433\u0456\u0447\u043d\u0456 \u043c\u0435\u0442\u043e\u0434\u0438"},"content":{"rendered":"<p>\u041f\u0435\u0440\u0435\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0432 PHP \u0434\u0430\u0454 \u043c\u043e\u0436\u043b\u0438\u0432\u0456\u0441\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0456\u0447\u043d\u043e &#8220;\u0441\u0442\u0432\u043e\u0440\u044e\u0432\u0430\u0442\u0438&#8221; \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u0456 \u043c\u0435\u0442\u043e\u0434\u0438. \u0422\u0430\u043a\u0456 \u043c\u0435\u0442\u043e\u0434\u0438 \u0456 \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u043e\u0431\u0440\u043e\u0431\u043b\u044f\u044e\u0442\u044c\u0441\u044f \u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e&#8221; \u0447\u0430\u0440\u0456\u0432\u043d\u0438\u0445 &#8221; \u043c\u0435\u0442\u043e\u0434\u0456\u0432, \u044f\u043a\u0456 \u043c\u043e\u0436\u043d\u0430 \u0441\u0442\u0432\u043e\u0440\u0438\u0442\u0438 \u0432 \u043a\u043b\u0430\u0441\u0456 \u0434\u043b\u044f \u0440\u0456\u0437\u043d\u0438\u0445 \u0432\u0438\u0434\u0456\u0432 \u0434\u0456\u0439.<\/p>\n<h3>\u041f\u0435\u0440\u0435\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0435\u0439<\/h3>\n<p>\u0417\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f \u0434\u043e \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0435\u0439 \u043e\u0431&#8217;\u0454\u043a\u0442\u0430 \u043c\u043e\u0436\u0443\u0442\u044c \u0431\u0443\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u0456 \u0437 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f\u043c \u043c\u0435\u0442\u043e\u0434\u0456\u0432 <code>__get<\/code> \u0456 <code>__set<\/code>. \u0426\u0456 \u043c\u0435\u0442\u043e\u0434\u0438 \u0431\u0443\u0434\u0443\u0442\u044c \u0441\u043f\u0440\u0430\u0446\u044c\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0432 \u0442\u043e\u043c\u0443 \u0432\u0438\u043f\u0430\u0434\u043a\u0443, \u044f\u043a\u0449\u043e \u043e\u0431&#8217;\u0454\u043a\u0442 \u043d\u0435 \u043c\u0456\u0441\u0442\u0438\u0442\u044c \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456, \u0434\u043e \u044f\u043a\u043e\u0457 \u0437\u0434\u0456\u0439\u0441\u043d\u044e\u0454\u0442\u044c\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/p>\n<pre class=\"prettyprint linenums\">&lt;?php\r\npublic void __set (string $name , mixed $value)\r\npublic mixed __get (string $name)\r\n?&gt;<\/pre>\n<p>\u041f\u0440\u0438\u043a\u043b\u0430\u0434 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f:<\/p>\n<pre class=\"prettyprint linenums\">&lt;?php\r\nclass MyClass {\r\n\u00a0 \u00a0 \u00a0public $c = \"c value\";\r\n\r\n\u00a0 \u00a0 \u00a0public function __set($name, $value) {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 echo \"__set, property - {$name} is not exists \\n\";\r\n\u00a0 \u00a0 \u00a0}\r\n\r\n\u00a0 \u00a0 \u00a0public function __get($name) {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 echo \"__get, property - {$name} is not exists \\n\";\r\n\u00a0 \u00a0 \u00a0}\r\n}\r\n\r\n$obj = new MyClass;\r\n$obj -&gt;a = 1; \/\/ \u0437\u0430\u043f\u0438\u0441 \u0443 \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u0456\u0441\u0442\u044c (\u0432\u043b\u0430\u0441\u0442\u0438\u0432\u0456\u0441\u0442\u044c \u043d\u0435 \u0456\u0441\u043d\u0443\u0454)\r\necho $obj -&gt;b; \/\/ \u043e\u0442\u0440\u0438\u043c\u0443\u0454\u043c\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 (\u0432\u043b\u0430\u0441\u0442\u0438\u0432\u0456\u0441\u0442\u044c \u043d\u0435 \u0456\u0441\u043d\u0443\u0454)\r\necho $obj -&gt;c; \/\/ \u043e\u0442\u0440\u0438\u043c\u0443\u0454\u043c\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 (\u0432\u043b\u0430\u0441\u0442\u0438\u0432\u0456\u0441\u0442\u044c \u0456\u0441\u043d\u0443\u0454)\r\n?&gt;<\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<pre class=\"result\">__set, property - a is not exists \r\n__get, property - b is not exists \r\nc value<\/pre>\n<h3>\u041f\u0435\u0440\u0435\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u043c\u0435\u0442\u043e\u0434\u0456\u0432<\/h3>\n<p>\u0412\u0438\u043a\u043b\u0438\u043a\u0438 \u043c\u0435\u0442\u043e\u0434\u0456\u0432 \u043c\u043e\u0436\u0443\u0442\u044c \u0431\u0443\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u0456 \u0437 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f\u043c \u043c\u0435\u0442\u043e\u0434\u0456\u0432 <code>__call<\/code>. \u0426\u0456 \u043c\u0435\u0442\u043e\u0434\u0438 \u0431\u0443\u0434\u0443\u0442\u044c \u0441\u043f\u0440\u0430\u0446\u044c\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0432 \u0442\u043e\u043c\u0443 \u0432\u0438\u043f\u0430\u0434\u043a\u0443, \u044f\u043a\u0449\u043e \u043e\u0431&#8217;\u0454\u043a\u0442 \u043d\u0435 \u043c\u0456\u0441\u0442\u0438\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0443, \u0434\u043e \u044f\u043a\u043e\u0433\u043e \u0437\u0434\u0456\u0439\u0441\u043d\u044e\u0454\u0442\u044c\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/p>\n<pre class=\"prettyprint linenums\">&lt;?php\r\npublic mixed __call (string $name , array $arguments)\r\n?&gt;<\/pre>\n<p>\u041f\u0440\u0438\u043a\u043b\u0430\u0434:<\/p>\n<pre class=\"prettyprint linenums\"><span class=\"hljs-preprocessor\">&lt;?php<\/span>\r\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">MyClass<\/span> <\/span>{\r\n\t<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">__call<\/span><span class=\"hljs-params\">(<span class=\"hljs-variable\">$name<\/span>, <span class=\"hljs-variable\">$arguments<\/span>)<\/span> <\/span>{\r\n\t\t<span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"__call, method - {$name} is not exists \\n\"<\/span>;\r\n\t}\r\n\t\r\n\t<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">getId<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n\t\t<span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"AH-15474\"<\/span>;\r\n\t}\r\n}\r\n\r\n<span class=\"hljs-variable\">$obj<\/span> = <span class=\"hljs-keyword\">new<\/span> MyClass;\r\n<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-variable\">$obj<\/span>-&gt;getName(); <span class=\"hljs-comment\">\/\/ \u0432\u0438\u043a\u043b\u0438\u043a \u043c\u0435\u0442\u043e\u0434\u0430 (\u043c\u0435\u0442\u043e\u0434 \u043d\u0435 \u0456\u0441\u043d\u0443\u0454)<\/span>\r\n<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-variable\">$obj<\/span>-&gt;getId(); <span class=\"hljs-comment\">\/\/ \u0432\u0438\u043a\u043b\u0438\u043a \u043c\u0435\u0442\u043e\u0434\u0430 (\u043c\u0435\u0442\u043e\u0434 \u043d\u0435 \u0456\u0441\u043d\u0443\u0454)<\/span>\r\n<span class=\"hljs-preprocessor\">?&gt;<\/span><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<pre class=\"result\">__call, method - getName is not exists (\u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 getName)\r\nAH-15474 (\u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 getId)<\/pre>\n<p>\u041c\u0430\u0433\u0456\u0447\u043d\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 <code>__toString<\/code><\/p>\n<p>\u041c\u0435\u0442\u043e\u0434 <code>__toString()<\/code> \u0431\u0443\u0434\u0435 \u0441\u043f\u0440\u0430\u0446\u044c\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u043f\u0440\u0438 \u0441\u043f\u0440\u043e\u0431\u0456 \u043f\u0435\u0440\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u043a\u043b\u0430\u0441\u0443 \u0432 \u0440\u044f\u0434\u043e\u043a. \u041d\u0430\u043f\u0440\u0438\u043a\u043b\u0430\u0434, <code>echo $obj;<\/code>.<\/p>\n<p>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/p>\n<pre class=\"prettyprint linenums\"><span class=\"hljs-preprocessor\">&lt;?php<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> string __toString()\r\n<span class=\"hljs-preprocessor\">?&gt;<\/span><\/pre>\n<p>\u041f\u0440\u0438\u043a\u043b\u0430\u0434:<\/p>\n<pre class=\"prettyprint linenums\"><span class=\"hljs-preprocessor\">&lt;?php<\/span>\r\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">MyClass<\/span> <\/span>{\r\n\t<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">__toString<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n\t\t<span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"MyClass class\"<\/span>;\r\n\t}\r\n}\r\n\r\n<span class=\"hljs-variable\">$obj<\/span> = <span class=\"hljs-keyword\">new<\/span> MyClass;\r\n<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-variable\">$obj<\/span>; <span class=\"hljs-comment\">\/\/ \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: MyClass class<\/span>\r\n<span class=\"hljs-preprocessor\">?&gt;<\/span><\/pre>\n<p>\u041c\u0430\u0433\u0456\u0447\u043d\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 <code>__invoke()<\/code><\/p>\n<p>\u041c\u0435\u0442\u043e\u0434 <code>__invoke()<\/code> \u0432\u0438\u043a\u043b\u0438\u043a\u0430\u0454\u0442\u044c\u0441\u044f, \u043a\u043e\u043b\u0438 \u043e\u0431&#8217;\u0454\u043a\u0442 \u043d\u0430\u043c\u0430\u0433\u0430\u044e\u0442\u044c\u0441\u044f \u0432\u0438\u043a\u043b\u0438\u043a\u0430\u0442\u0438 \u044f\u043a \u0444\u0443\u043d\u043a\u0446\u0456\u044e.<\/p>\n<p>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/p>\n<pre class=\"prettyprint linenums\"><span class=\"hljs-preprocessor\">&lt;?php<\/span>\r\nmixed __invoke ([ $... ] )\r\n<span class=\"hljs-preprocessor\">?&gt;<\/span><\/pre>\n<p>\u041f\u0440\u0438\u043a\u043b\u0430\u0434:<\/p>\n<pre class=\"prettyprint linenums\"><span class=\"hljs-preprocessor\">&lt;?php<\/span>\r\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">MyClass<\/span> <\/span>{\r\n\t<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">__invoke<\/span><span class=\"hljs-params\">(<span class=\"hljs-variable\">$a<\/span>)<\/span> <\/span>{\r\n\t\t<span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-variable\">$a<\/span>;\r\n\t}\r\n}\r\n\r\n<span class=\"hljs-variable\">$obj<\/span> = <span class=\"hljs-keyword\">new<\/span> MyClass;\r\n<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-variable\">$obj<\/span>(<span class=\"hljs-number\">75<\/span>); <span class=\"hljs-comment\">\/\/ \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: 75<\/span>\r\n<span class=\"hljs-preprocessor\">?&gt;<\/span><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0435\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0432 PHP \u0434\u0430\u0454 \u043c\u043e\u0436\u043b\u0438\u0432\u0456\u0441\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0456\u0447\u043d\u043e &#8220;\u0441\u0442\u0432\u043e\u0440\u044e\u0432\u0430\u0442\u0438&#8221; \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u0456 \u043c\u0435\u0442\u043e\u0434\u0438. \u0422\u0430\u043a\u0456 \u043c\u0435\u0442\u043e\u0434\u0438 \u0456 \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u043e\u0431\u0440\u043e\u0431\u043b\u044f\u044e\u0442\u044c\u0441\u044f \u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e&#8221; \u0447\u0430\u0440\u0456\u0432\u043d\u0438\u0445 &#8221; \u043c\u0435\u0442\u043e\u0434\u0456\u0432, \u044f\u043a\u0456 \u043c\u043e\u0436\u043d\u0430 \u0441\u0442\u0432\u043e\u0440\u0438\u0442\u0438 \u0432 \u043a\u043b\u0430\u0441\u0456 \u0434\u043b\u044f \u0440\u0456\u0437\u043d\u0438\u0445 \u0432\u0438\u0434\u0456\u0432 \u0434\u0456\u0439. \u041f\u0435\u0440\u0435\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0435\u0439 \u0417\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f \u0434\u043e \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0435\u0439 \u043e\u0431&#8217;\u0454\u043a\u0442\u0430 \u043c\u043e\u0436\u0443\u0442\u044c \u0431\u0443\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u0456 \u0437 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f\u043c \u043c\u0435\u0442\u043e\u0434\u0456\u0432 __get \u0456 __set. \u0426\u0456 \u043c\u0435\u0442\u043e\u0434\u0438 \u0431\u0443\u0434\u0443\u0442\u044c \u0441\u043f\u0440\u0430\u0446\u044c\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0432 \u0442\u043e\u043c\u0443 \u0432\u0438\u043f\u0430\u0434\u043a\u0443, \u044f\u043a\u0449\u043e \u043e\u0431&#8217;\u0454\u043a\u0442 \u043d\u0435 \u043c\u0456\u0441\u0442\u0438\u0442\u044c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22],"tags":[],"class_list":["post-672","post","type-post","status-publish","format-standard","hentry","category-oop"],"_links":{"self":[{"href":"https:\/\/ithub.oa.edu.ua\/webdev\/php\/wp-json\/wp\/v2\/posts\/672","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ithub.oa.edu.ua\/webdev\/php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ithub.oa.edu.ua\/webdev\/php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ithub.oa.edu.ua\/webdev\/php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ithub.oa.edu.ua\/webdev\/php\/wp-json\/wp\/v2\/comments?post=672"}],"version-history":[{"count":1,"href":"https:\/\/ithub.oa.edu.ua\/webdev\/php\/wp-json\/wp\/v2\/posts\/672\/revisions"}],"predecessor-version":[{"id":673,"href":"https:\/\/ithub.oa.edu.ua\/webdev\/php\/wp-json\/wp\/v2\/posts\/672\/revisions\/673"}],"wp:attachment":[{"href":"https:\/\/ithub.oa.edu.ua\/webdev\/php\/wp-json\/wp\/v2\/media?parent=672"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ithub.oa.edu.ua\/webdev\/php\/wp-json\/wp\/v2\/categories?post=672"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ithub.oa.edu.ua\/webdev\/php\/wp-json\/wp\/v2\/tags?post=672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}