{"id":606,"date":"2025-06-11T10:44:40","date_gmt":"2025-06-11T02:44:40","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/sjjg\/606.html"},"modified":"2025-06-11T10:44:40","modified_gmt":"2025-06-11T02:44:40","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8php%e4%b8%ad%e5%ae%9e%e7%8e%b0%e9%ad%94%e6%b3%95%e6%96%b9%e6%b3%95","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/606.html","title":{"rendered":"\u5982\u4f55\u5728PHP\u4e2d\u5b9e\u73b0\u9b54\u6cd5\u65b9\u6cd5"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;PHP&#20013;&#65292;&#39764;&#26415;&#26041;&#27861;&#65288;Magic Methods&#65289;&#26159;&#39044;&#23450;&#20041;&#30340;&#29305;&#27530;&#26041;&#27861;&#65292;&#21487;&#20197;&#22312;&#31867;&#30340;&#23454;&#20363;&#21270;&#12289;&#35775;&#38382;&#23646;&#24615;&#21644;&#35843;&#29992;&#26041;&#27861;&#26102;&#33258;&#21160;&#35302;&#21457;&#12290;&#36825;&#20123;&#26041;&#27861;&#21253;&#25324;<code>__construct()<\/code>&#12289;<code>__destruct()<\/code>&#12289;<code>__get()<\/code>&#12289;<code>__set()<\/code>&#12289;<code>__isset()<\/code>&#12289;<code>__unset()<\/code>&#12289;<code>__call()<\/code>&#12289;<code>__invoke()<\/code>&#12289;<code>__tostring()<\/code>&#31561;&#12290;<\/p>\n<p>&#19979;&#38754;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#31034;&#20363;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#20351;&#29992;&#19968;&#20123;&#24120;&#35265;&#30340;&#39764;&#26415;&#26041;&#27861;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nclass Person {\n    \/\/ &#23450;&#20041;&#31169;&#26377;&#23646;&#24615;\n    private $name;\n    private $age;\n\n    \/\/ &#26500;&#36896;&#20989;&#25968;\n    public function __construct($name, $age) {\n        $this-&gt;name = $name;\n        $this-&gt;age = $age;\n    }\n\n    \/\/ &#33719;&#21462;&#23646;&#24615;&#20540;\n    public function __get($property) {\n        if (property_exists($this, $property)) {\n            return $this-&gt;$property;\n        } else {\n            throw new Exception(\"Property '$property' does not exist.\");\n        }\n    }\n\n    \/\/ &#35774;&#32622;&#23646;&#24615;&#20540;\n    public function __set($property, $value) {\n        if (property_exists($this, $property)) {\n            $this-&gt;$property = $value;\n        } else {\n            throw new Exception(\"Property '$property' does not exist.\");\n        }\n    }\n\n    \/\/ &#26816;&#26597;&#23646;&#24615;&#26159;&#21542;&#23384;&#22312;\n    public function __isset($property) {\n        return isset($this-&gt;$property);\n    }\n\n    \/\/ &#21024;&#38500;&#23646;&#24615;\n    public function __unset($property) {\n        unset($this-&gt;$property);\n    }\n\n    \/\/ &#35843;&#29992;&#26410;&#23450;&#20041;&#30340;&#26041;&#27861;\n    public function __call($method, $args) {\n        echo \"Calling method: $method with arguments: \" . implode(', ', $args) . \"n\";\n    }\n\n    \/\/ &#23558;&#23545;&#35937;&#36716;&#25442;&#20026;&#23383;&#31526;&#20018;\n    public function __toString() {\n        return \"Person{name='$this-&gt;name', age=$this-&gt;age}\";\n    }\n}\n\n\/\/ &#21019;&#24314;&#23545;&#35937;&#24182;&#35774;&#32622;&#23646;&#24615;\n$person = new Person('Alice', 30);\n\n\/\/ &#35775;&#38382;&#23646;&#24615;\necho $person-&gt;name; \/\/ &#36755;&#20986;: Alice\necho $person-&gt;age;  \/\/ &#36755;&#20986;: 30\n\n\/\/ &#35774;&#32622;&#23646;&#24615;\n$person-&gt;age = 31;\n\n\/\/ &#26816;&#26597;&#23646;&#24615;&#26159;&#21542;&#23384;&#22312;\nif ($person-&gt;__isset('age')) {\n    echo \"Age property exists.n\";\n} else {\n    echo \"Age property does not exist.n\";\n}\n\n\/\/ &#21024;&#38500;&#23646;&#24615;\nunset($person-&gt;age);\n\n\/\/ &#35843;&#29992;&#26410;&#23450;&#20041;&#30340;&#26041;&#27861;\n$person-&gt;greet(); \/\/ &#36755;&#20986;: Calling method: greet with arguments: Array()\n\n\/\/ &#23558;&#23545;&#35937;&#36716;&#25442;&#20026;&#23383;&#31526;&#20018;\necho $person; \/\/ &#36755;&#20986;: Person{name='Alice', age=31}\n?&gt;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#23450;&#20041;&#20102;&#19968;&#20010;&#21517;&#20026;<code>Person<\/code>&#30340;&#31867;&#65292;&#24182;&#22312;&#20854;&#20013;&#23450;&#20041;&#20102;&#19968;&#20123;&#39764;&#26415;&#26041;&#27861;&#12290;&#36890;&#36807;&#36825;&#20123;&#39764;&#26415;&#26041;&#27861;&#65292;&#25105;&#20204;&#21487;&#20197;&#26041;&#20415;&#22320;&#31649;&#29702;&#23545;&#35937;&#30340;&#23646;&#24615;&#21644;&#34892;&#20026;&#12290;&#20363;&#22914;&#65292;<code>__get()<\/code>&#21644;<code>__set()<\/code>&#29992;&#20110;&#35775;&#38382;&#21644;&#35774;&#32622;&#23646;&#24615;&#65292;<code>__isset()<\/code>&#29992;&#20110;&#26816;&#26597;&#23646;&#24615;&#26159;&#21542;&#23384;&#22312;&#65292;<code>__unset()<\/code>&#29992;&#20110;&#21024;&#38500;&#23646;&#24615;&#65292;<code>__call()<\/code>&#29992;&#20110;&#22788;&#29702;&#26410;&#23450;&#20041;&#30340;&#26041;&#27861;&#65292;&#20197;&#21450;<code>__toString()<\/code>&#29992;&#20110;&#23558;&#23545;&#35937;&#36716;&#25442;&#20026;&#23383;&#31526;&#20018;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#27010;&#36848;<\/h2><p>PHP&#39764;&#26415;&#26041;&#27861;&#26159;&#19968;&#31181;&#29305;&#27530;&#30340;&#26041;&#27861;&#65292;&#23427;&#20204;&#25552;&#20379;&#20102;&#19968;&#31181;&#33258;&#21160;&#25191;&#34892;&#26576;&#20123;&#25805;&#20316;&#30340;&#26041;&#24335;&#12290;&#24403;&#22312;&#23545;&#35937;&#19978;&#19979;&#25991;&#20013;&#21457;&#29983;&#26576;&#20123;&#21160;&#20316;&#26102;&#65292;&#36825;&#20123;&#26041;&#27861;&#20250;&#34987;&#35302;&#21457;&#12290;&#26412;&#25351;&#21335;&#23558;&#36890;&#36807;&#23454;&#38469;&#31034;&#20363;&#25506;&#32034;&#22914;&#20309;&#21033;&#29992;&#36825;&#20123;&#26041;&#27861;&#30340;&#21147;&#37327;&#12290;<\/p><h2>&#39764;&#27861;&#26041;&#27861;&#30340;&#20171;&#32461;<\/h2><p>PHP&#30340;&#39764;&#26415;&#26041;&#27861;&#26159;&#20197;&#21452;&#19979;&#21010;&#32447;&#65288;__&#65289;&#24320;&#22836;&#30340;&#26041;&#27861;&#21517;&#65292;&#23427;&#20204;&#20801;&#35768;&#24320;&#21457;&#20154;&#21592;&#35206;&#30422;&#31867;&#25805;&#20316;&#30340;&#40664;&#35748;&#34892;&#20026;&#12290;&#36825;&#20123;&#25805;&#20316;&#21253;&#25324;&#23545;&#35937;&#26500;&#36896;&#12289;&#23383;&#31526;&#20018;&#36716;&#25442;&#21644;&#23545;&#35937;&#20811;&#38534;&#31561;&#12290;<\/p><pre><code>\/\/ Demonstration of a constructor magic method\nclass Book {\n    public $title;\n\n    public function __construct($title) {\n        $this-&gt;title = $title;\n    }\n}\n\n$myBook = new Book('Harry Potter');\n<\/code><\/pre><p>&#22312;&#22522;&#26412;&#31034;&#20363;&#20013;&#65292;&#24403;&#21019;&#24314;&#26032;&#23545;&#35937;&#26102;&#65292;__construct() &#26041;&#27861;&#20250;&#33258;&#21160;&#35843;&#29992;&#12290;<\/p><h2>&#23454;&#29616;&#39764;&#27861;&#33719;&#21462;&#22120;&#21644;&#35774;&#32622;&#22120;&#12290;<\/h2><p>&#35775;&#38382;&#21644;&#35774;&#32622;&#26410;&#22312;&#31867;&#20013;&#26126;&#30830;&#23450;&#20041;&#30340;&#23646;&#24615;&#26102;&#65292;&#20351;&#29992;&#39764;&#26415;&#26041;&#27861;get()&#21644;set()&#38750;&#24120;&#26377;&#29992;&#12290;&#36825;&#21487;&#20197;&#25552;&#20379;&#26497;&#22823;&#30340;&#28789;&#27963;&#24615;&#12290;<\/p><pre><code>class UserProfile {\n    private $data = [];\n\n    public function __get($name) {\n        return isset($this-&gt;data[$name]) ? $this-&gt;data[$name] : null;\n    }\n\n    public function __set($name, $value) {\n        $this-&gt;data[$name] = $value;\n    }\n}\n\n$profile = new UserProfile();\n$profile-&gt;firstName = 'John';\n$profile-&gt;lastName = 'Doe';\n\necho $profile-&gt;firstName; \/\/ Outputs: John\n<\/code><\/pre><p>&#27880;&#24847;&#65292;&#23646;&#24615;&#26159;&#22312;&#36816;&#34892;&#26102;&#21160;&#24577;&#22788;&#29702;&#30340;&#65292;&#32780;&#19981;&#26159;&#22312;&#31867;&#20013;&#39044;&#20808;&#23450;&#20041;&#30340;&#12290;<\/p><h2>&#36807;&#24230;&#21152;&#36733;&#21644;&#23454;&#29616;call()&#21644;callStatic()&#26041;&#27861;<\/h2><p>call() &#21644; callStatic() &#29992;&#20110;&#22788;&#29702;&#26410;&#23450;&#20041;&#26041;&#27861;&#30340;&#35843;&#29992;&#12290;call() &#36866;&#29992;&#20110;&#23454;&#20363;&#26041;&#27861;&#65292;&#32780; callStatic() &#36866;&#29992;&#20110;&#38745;&#24577;&#26041;&#27861;&#12290;<\/p><pre><code>class ErrorLogger {\n    public function __call($name, $arguments) {\n        echo \"Nonexistent method '$name' was called with arguments: \" . implode(', ', $arguments) . \"n\";\n    }\n\n    public static function __callStatic($name, $arguments) {\n        echo \"Nonexistent static method '$name' was called with arguments: \" . implode(', ', $arguments) . \"n\";\n    }\n}\n\n$logger = new ErrorLogger();\n$logger-&gt;logError('Page not found', 404);\nErrorLogger::logStaticError('Service unavailable', 503);\n<\/code><\/pre><p>&#36890;&#36807;&#20351;&#29992;&#36825;&#20123;&#26041;&#27861;&#65292;&#20195;&#30721;&#21487;&#20197;&#20248;&#38597;&#22320;&#22788;&#29702;&#26410;&#23450;&#20041;&#30340;&#26041;&#27861;&#35843;&#29992;&#65292;&#32780;&#19981;&#26159;&#25243;&#20986;&#38169;&#35823;&#12290;<\/p><h2>&#36890;&#36807; __sleep() &#21644; __wakeup() &#26469;&#25511;&#21046;&#23545;&#35937;&#24207;&#21015;&#21270;&#19982;&#21453;&#24207;&#21015;&#21270;<\/h2><p>&#39764;&#26415;&#26041;&#27861;sleep()&#22312;&#23545;&#35937;&#34987;&#24207;&#21015;&#21270;&#20043;&#21069;&#20250;&#34987;&#35843;&#29992;&#65292;&#20801;&#35768;&#24744;&#25351;&#23450;&#21738;&#20123;&#23646;&#24615;&#24212;&#36827;&#34892;&#24207;&#21015;&#21270;&#12290;&#30456;&#21453;&#65292;&#39764;&#26415;&#26041;&#27861;wakeup()&#29992;&#20110;&#22312;&#23545;&#35937;&#21453;&#24207;&#21015;&#21270;&#26102;&#37325;&#26032;&#24314;&#31435;&#20219;&#20309;&#25968;&#25454;&#24211;&#36830;&#25509;&#25110;&#20854;&#20182;&#21021;&#22987;&#21270;&#20219;&#21153;&#12290;<\/p><pre><code>class Connection {\n    protected $link;\n    private $server, $username, $password, $db;\n\n    public function __sleep() {\n        return ['server', 'username', 'password', 'db'];\n    }\n\n    public function __wakeup() {\n        $this-&gt;connect();\n    }\n}\n\n$con = new Connection();\n$serialized = serialize($con);\n\/\/ $serialized contains only properties listed in __sleep\n$unserialized = unserialize($serialized);\n\/\/ __wakeup re-establishes the connection\n<\/code><\/pre><p>&#36825;&#20004;&#31181;&#26041;&#27861;&#30830;&#20445;&#22312;&#24207;&#21015;&#21270;&#21644;&#21453;&#24207;&#21015;&#21270;&#21518;&#65292;&#23545;&#35937;&#22788;&#20110;&#26377;&#25928;&#29366;&#24577;&#12290;<\/p><h2>&#23545;&#35937;&#34920;&#31034;&#26041;&#27861;&#65292;&#20351;&#29992; __toString() &#26041;&#27861;&#12290;<\/h2><p>&#39764;&#26415;&#26041;&#27861;__toString()&#20801;&#35768;&#31867;&#23450;&#20041;&#23427;&#24212;&#35813;&#22914;&#20309;&#21709;&#24212;&#20316;&#20026;&#23383;&#31526;&#20018;&#22788;&#29702;&#30340;&#24773;&#20917;&#12290;<\/p><pre><code>class EmailAddress {\n    private $email;\n\n    public function __construct($email) {\n        $this-&gt;email = $email;\n    }\n\n    public function __toString() {\n        return $this-&gt;email;\n    }\n}\n\n$email = new EmailAddress('[email&nbsp;protected]');\necho $email; \/\/ Outputs: [email&nbsp;protected]\n<\/code><\/pre><p>&#19968;&#20010;&#33258;&#23450;&#20041;&#30340;__toString()&#26041;&#27861;&#25552;&#20379;&#20102;&#19968;&#20010;&#24178;&#20928;&#19988;&#21487;&#35835;&#30340;&#26041;&#24335;&#26469;&#36755;&#20986;&#23545;&#35937;&#30340;&#37325;&#35201;&#20449;&#24687;&#12290;<\/p><h2>&#20351;&#29992;__clone()&#22788;&#29702;&#23545;&#35937;&#20811;&#38534;<\/h2><p>&#35201;&#25511;&#21046;&#23545;&#35937;&#30340;&#20811;&#38534;&#36807;&#31243;&#65292;&#20320;&#21487;&#20197;&#23450;&#20041;&#19968;&#20010;&#21517;&#20026; __clone() &#30340;&#39764;&#26415;&#26041;&#27861;&#12290;&#36825;&#23545;&#20110;&#21253;&#21547;&#33258;&#36523;&#20026;&#23545;&#35937;&#30340;&#23646;&#24615;&#30340;&#23545;&#35937;&#36827;&#34892;&#28145;&#25335;&#36125;&#38750;&#24120;&#26377;&#29992;&#12290;<\/p><pre><code>class Person {\n    public $name;\n    public $address;\n\n    public function __construct($name, $address) {\n        $this-&gt;name = $name;\n        $this-&gt;address = $address;\n    }\n\n    public function __clone() {\n        $this-&gt;address = clone $this-&gt;address;\n    }\n}\n\nclass Address {\n    public $city;\n    public function __construct($city) {\n        $this-&gt;city = $city;\n    }\n}\n\n$original = new Person('John', new Address('New York'));\n$copy = clone $original;\n$copy-&gt;address-&gt;city = 'San Francisco';\n\n\/\/ $original address remains unchanged\n<\/code><\/pre><p>&#36890;&#36807;&#23454;&#29616;__clone()&#26041;&#27861;&#65292;&#20320;&#21487;&#20197;&#23436;&#20840;&#25511;&#21046;&#23545;&#35937;&#23646;&#24615;&#30340;&#20811;&#38534;&#26041;&#24335;&#12290;<\/p><h2>&#32467;&#35770;<\/h2><p>&#39764;&#26415;&#26041;&#27861;&#22312;PHP&#20013;&#26159;&#38750;&#24120;&#24378;&#22823;&#30340;&#24037;&#20855;&#65292;&#21487;&#20197;&#22823;&#22823;&#31616;&#21270;&#23545;&#35937;&#22788;&#29702;&#12289;&#25552;&#20379;&#26356;&#31616;&#27905;&#30340;&#35821;&#27861;&#65292;&#24182;&#20026;&#24120;&#35265;&#30340;&#32534;&#30721;&#25361;&#25112;&#25552;&#20379;&#20102;&#31283;&#20581;&#30340;&#35299;&#20915;&#26041;&#26696;&#12290;&#36890;&#36807;&#28145;&#20837;&#29702;&#35299;&#22914;&#20309;&#23454;&#29616;&#36825;&#20123;&#26041;&#27861;&#65292;&#24744;&#19981;&#20165;&#22686;&#24378;&#20102;&#31867;&#23618;&#27425;&#32467;&#26500;&#30340;&#21151;&#33021;&#24615;&#65292;&#36824;&#25552;&#39640;&#20102;&#20195;&#30721;&#30340;&#21487;&#32500;&#25252;&#24615;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;PHP&#20013;&#65292;&#23454;&#29616;&#39764;&#26415;&#26041;&#27861;&#65288;Magic Methods&#65289;&#26159;&#36890;&#36807;&#23450;&#20041;&#19968;&#20123;&#29305;&#27530;&#30340;&#20989;&#25968;&#26469;&#23454;&#29616;&#30340;&#12290;&#36825;&#20123;&#39764;&#26415;&#26041;&#27861;&#20801;&#35768;&#24320;&#21457;&#32773;&#22312;&#19981;&#38656;&#35201;&#32534;&#20889;&#39069;&#22806;&#30340;&#20195;&#30721;&#26102;&#35843;&#29992;&#31867;&#20013;&#30340;&#31169;&#26377;&#25104;&#21592;&#12290;<\/p>\n<p>&#20197;&#19979;&#26159;&#22914;&#20309;&#20351;&#29992;&#39764;&#26415;&#26041;&#27861;&#21019;&#24314;&#21644;&#20351;&#29992;&#31867;&#30340;&#26041;&#27861;&#65306;<\/p>\n<ol>\n<li>\n<p>&#23450;&#20041;&#39764;&#26415;&#26041;&#27861;&#65306;&#39318;&#20808;&#65292;&#38656;&#35201;&#20026;&#35201;&#23454;&#29616;&#39764;&#26415;&#26041;&#27861;&#30340;&#31867;&#28155;&#21152;&#19968;&#20010;&#26032;&#30340;&#26041;&#27861;&#65292;&#35813;&#26041;&#27861;&#23558;&#34987;&#33258;&#21160;&#35843;&#29992;&#26469;&#25191;&#34892;&#30456;&#24212;&#30340;&#25805;&#20316;&#12290;&#20363;&#22914;&#65292;&#25105;&#20204;&#21487;&#20197;&#23450;&#20041;&#19968;&#20010;&#21517;&#20026;<code>__invoke<\/code>&#30340;&#26041;&#27861;&#65292;&#36825;&#20010;&#26041;&#27861;&#23558;&#22312;&#25105;&#20204;&#35797;&#22270;&#35843;&#29992;&#23545;&#35937;&#26041;&#27861;&#26102;&#34987;&#33258;&#21160;&#35843;&#29992;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#35843;&#29992;&#39764;&#26415;&#26041;&#27861;&#65306;&#28982;&#21518;&#65292;&#25105;&#20204;&#38656;&#35201;&#22312;&#31867;&#20869;&#37096;&#25110;&#20854;&#20182;&#22320;&#26041;&#23450;&#20041;&#19968;&#20010;&#23454;&#20363;&#21270;&#26041;&#27861;&#65292;&#24182;&#35843;&#29992;&#25105;&#20204;&#30340;&#26032;&#26041;&#27861;&#12290;&#36825;&#36890;&#24120;&#26159;&#22312;&#31867;&#30340;&#26500;&#36896;&#20989;&#25968;&#20869;&#23436;&#25104;&#30340;&#65292;&#25110;&#32773;&#36890;&#36807;<code>new<\/code>&#20851;&#38190;&#23383;&#21019;&#24314;&#23545;&#35937;&#21518;&#35843;&#29992;&#12290;<\/p>\n<\/li>\n<\/ol>\n<p>&#19979;&#38754;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#20363;&#23376;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#20351;&#29992;&#39764;&#26415;&#26041;&#27861;&#26469;&#22788;&#29702;&#23383;&#31526;&#20018;&#65306;<\/p>\n<pre><code class=\"language-php\">class StringManipulator {\n    private $str;\n\n    public function __construct($s) {\n        $this-&gt;str = $s;\n    }\n\n    \/\/ &#20351;&#29992;&#39764;&#26415;&#26041;&#27861;\n    public function __invoke() {\n        return $this-&gt;str . \"!\";\n    }\n}\n\n\/\/ &#21019;&#24314;&#19968;&#20010;StringManipulator&#23545;&#35937;&#24182;&#35843;&#29992;&#39764;&#26415;&#26041;&#27861;\n$manipulator = new StringManipulator(\"Hello\");\necho $manipulator();  \/\/ &#36755;&#20986;: Hello!<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#23450;&#20041;&#20102;&#19968;&#20010;&#21517;&#20026;<code>__invoke<\/code>&#30340;&#39764;&#26415;&#26041;&#27861;&#65292;&#23427;&#20250;&#22312;&#23581;&#35797;&#35843;&#29992;<code>StringManipulator::string()<\/code>&#26102;&#34987;&#33258;&#21160;&#35843;&#29992;&#12290;&#36825;&#26679;&#65292;&#24403;&#25105;&#20204;&#22312;&#36755;&#20986;&#35821;&#21477;&#20013;&#35843;&#29992;<code>echo $manipulator();<\/code>&#26102;&#65292;&#23601;&#20250;&#30475;&#21040;&#32467;&#26524;&#8221;Hello!&#8221;&#12290;<\/p>\n<p>&#27880;&#24847;&#65306;&#34429;&#28982;&#39764;&#26415;&#26041;&#27861;&#25552;&#20379;&#20102;&#24456;&#22823;&#30340;&#28789;&#27963;&#24615;&#65292;&#20294;&#23427;&#20204;&#20063;&#24102;&#26469;&#20102;&#19968;&#20123;&#38382;&#39064;&#65292;&#27604;&#22914;&#21487;&#33021;&#23548;&#33268;&#20869;&#23384;&#27844;&#28431;&#21644;&#24615;&#33021;&#38382;&#39064;&#12290;&#22240;&#27492;&#65292;&#22312;&#23454;&#38469;&#24212;&#29992;&#20013;&#65292;&#35831;&#35880;&#24910;&#20351;&#29992;&#39764;&#26415;&#26041;&#27861;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312;PHP&#20013;&#65292;&#39764;&#26415;&#26041;&#27861;&#65288;Magic Methods&#65289;&#26159;&#39044;&#23450;&#20041;&#30340;&#038;#29..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[41],"tuisongtax":[],"class_list":["post-606","my1js","type-my1js","status-publish","hentry","my1js2nav-sjjg"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=606"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=606"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=606"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}