{"id":632,"date":"2025-06-11T11:25:23","date_gmt":"2025-06-11T03:25:23","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/sjjg\/632.html"},"modified":"2025-06-11T11:25:23","modified_gmt":"2025-06-11T03:25:23","slug":"php-%e5%8f%af%e8%b0%83%e7%94%a8%e7%b1%bb%e5%9e%8b%ef%bc%9a%e5%85%a8%e9%9d%a2%e6%8c%87%e5%8d%97","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/632.html","title":{"rendered":"PHP \u53ef\u8c03\u7528\u7c7b\u578b\uff1a\u5168\u9762\u6307\u5357"},"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>&#12298;PHP &#21487;&#35843;&#29992;&#31867;&#22411;&#65306;&#20840;&#38754;&#25351;&#21335;&#12299;<\/p>\n<p>&#22312; PHP &#20013;&#65292;<code>callable<\/code> &#31867;&#22411;&#26159;&#19968;&#31181;&#29305;&#27530;&#30340;&#24341;&#29992;&#31867;&#22411;&#65292;&#29992;&#20110;&#34920;&#31034;&#21487;&#20197;&#34987;&#35843;&#29992;&#30340;&#20989;&#25968;&#12289;&#26041;&#27861;&#12289;&#38381;&#21253;&#25110;&#32773;&#22238;&#35843;&#12290;&#36825;&#31181;&#31867;&#22411;&#30340;&#21464;&#37327;&#21487;&#20197;&#23384;&#20648;&#20219;&#20309;&#21487;&#20197;&#34987;&#35843;&#29992;&#30340;&#23545;&#35937;&#65292;&#24182;&#19988;&#21487;&#20197;&#22312;&#36816;&#34892;&#26102;&#21160;&#24577;&#22320;&#26816;&#26597;&#21644;&#20351;&#29992;&#23427;&#20204;&#12290;<\/p>\n<h3>1. &#22522;&#26412;&#27010;&#24565;<\/h3>\n<ul>\n<li><strong>&#20989;&#25968;<\/strong>&#65306;&#21487;&#20197;&#30452;&#25509;&#20256;&#36882;&#19968;&#20010;&#20989;&#25968;&#21517;&#20316;&#20026; <code>callable<\/code>&#12290;<\/li>\n<li><strong>&#26041;&#27861;<\/strong>&#65306;&#21487;&#20197;&#36890;&#36807;&#23545;&#35937;&#23454;&#20363;&#26469;&#20256;&#36882;&#19968;&#20010;&#26041;&#27861;&#12290;<\/li>\n<li><strong>&#38381;&#21253;<\/strong>&#65306;&#21487;&#20197;&#21019;&#24314;&#21311;&#21517;&#20989;&#25968;&#24182;&#23558;&#20854;&#36171;&#20540;&#32473; <code>callable<\/code> &#21464;&#37327;&#12290;<\/li>\n<li><strong>&#22238;&#35843;<\/strong>&#65306;&#36890;&#24120;&#25351;&#22312;&#20107;&#20214;&#22788;&#29702;&#31243;&#24207;&#20013;&#20351;&#29992;&#30340;&#22238;&#35843;&#20989;&#25968;&#12290;<\/li>\n<\/ul>\n<h3>2. &#20351;&#29992;&#31034;&#20363;<\/h3>\n<h4>2.1 &#20989;&#25968;<\/h4>\n<pre><code class=\"language-php\">function greet($name) {\n    echo \"Hello, $name!\";\n}\n\n$callable = 'greet';\n$callable('Alice'); \/\/ &#36755;&#20986;: Hello, Alice!<\/code><\/pre>\n<h4>2.2 &#26041;&#27861;<\/h4>\n<pre><code class=\"language-php\">class User {\n    public function sayHello($name) {\n        echo \"Hello, $name!\";\n    }\n}\n\n$user = new User();\n$callable = [$user, 'sayHello'];\n$callable('Bob'); \/\/ &#36755;&#20986;: Hello, Bob!<\/code><\/pre>\n<h4>2.3 &#38381;&#21253;<\/h4>\n<pre><code class=\"language-php\">$callable = function ($name) {\n    echo \"Hello, $name!\";\n};\n\n$callable('Charlie'); \/\/ &#36755;&#20986;: Hello, Charlie!<\/code><\/pre>\n<h4>2.4 &#22238;&#35843;<\/h4>\n<pre><code class=\"language-php\">function handleRequest(callable $callback) {\n    $callback();\n}\n\nhandleRequest(function () {\n    echo \"Handling request...\";\n});\n\nhandleRequest(function ($message) {\n    echo \"Received message: $message\";\n});<\/code><\/pre>\n<h3>3. &#26816;&#26597;&#21644;&#36716;&#25442;<\/h3>\n<p>&#20320;&#21487;&#20197;&#20351;&#29992; <code>is_callable<\/code> &#20989;&#25968;&#26469;&#26816;&#26597;&#19968;&#20010;&#21464;&#37327;&#26159;&#21542;&#26159; <code>callable<\/code> &#31867;&#22411;&#65306;<\/p>\n<pre><code class=\"language-php\">$var = 'greet';\n\nif (is_callable($var)) {\n    echo \"$var is callable.\";\n} else {\n    echo \"$var is not callable.\";\n}<\/code><\/pre>\n<h3>4. &#21160;&#24577;&#32465;&#23450;<\/h3>\n<p><code>callable<\/code> &#31867;&#22411;&#38750;&#24120;&#36866;&#21512;&#22312;&#38656;&#35201;&#28789;&#27963;&#35843;&#29992;&#19981;&#21516;&#31867;&#22411;&#20989;&#25968;&#30340;&#22320;&#26041;&#20351;&#29992;&#12290;&#20363;&#22914;&#65292;&#36890;&#36807;&#25968;&#32452;&#26469;&#20256;&#36882;&#20989;&#25968;&#65306;<\/p>\n<pre><code class=\"language-php\">$functions = [\n    'greet' =&gt; 'greet',\n    'sayHello' =&gt; [$user, 'sayHello'],\n];\n\nforeach ($functions as $key =&gt; $value) {\n    if (is_callable($value)) {\n        $value('Diana');\n    } else {\n        echo \"$key is not callable.n\";\n    }\n}<\/code><\/pre>\n<h3>&#24635;&#32467;<\/h3>\n<p><code>callable<\/code> &#31867;&#22411;&#22312; PHP &#20013;&#25552;&#20379;&#20102;&#24378;&#22823;&#30340;&#28789;&#27963;&#24615;&#65292;&#20351;&#24471;&#20320;&#21487;&#20197;&#36731;&#26494;&#22320;&#22788;&#29702;&#21508;&#31181;&#21487;&#35843;&#29992;&#23545;&#35937;&#12290;&#26080;&#35770;&#26159;&#20989;&#25968;&#12289;&#26041;&#27861;&#12289;&#38381;&#21253;&#36824;&#26159;&#22238;&#35843;&#65292;&#37117;&#21487;&#20197;&#36890;&#36807; <code>callable<\/code> &#31867;&#22411;&#36827;&#34892;&#23450;&#20041;&#21644;&#20351;&#29992;&#12290;&#36890;&#36807;&#29702;&#35299; <code>callable<\/code> &#30340;&#22522;&#26412;&#27010;&#24565;&#21644;&#20351;&#29992;&#31034;&#20363;&#65292;&#20320;&#21487;&#20197;&#26356;&#22909;&#22320;&#25484;&#25569;&#22914;&#20309;&#22312; PHP &#20013;&#22788;&#29702;&#21487;&#35843;&#29992;&#31867;&#22411;&#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>&#20171;&#32461;<\/h2><p>PHP&#65292;&#19968;&#31181;&#26381;&#21153;&#22120;&#31471;&#33050;&#26412;&#35821;&#35328;&#65292;&#22312;&#26102;&#38388;&#30340;&#38271;&#27827;&#20013;&#19981;&#26029;&#21457;&#23637;&#65292;&#20026;&#24320;&#21457;&#32773;&#25552;&#20379;&#20102;&#22810;&#31181;&#21151;&#33021;&#21644;&#29305;&#24615;&#65292;&#20197;&#25552;&#39640;&#21518;&#31471;&#24320;&#21457;&#30340;&#25928;&#29575;&#21644;&#21147;&#37327;&#12290;&#20854;&#20013;&#30340;&#19968;&#39033;&#29305;&#24449;&#23601;&#26159;&#21487;&#35843;&#29992;&#31867;&#22411;&#65288;callable&#65289;&#12290;&#22312;&#26412;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#35752;&#20160;&#20040;&#26159;&#21487;&#35843;&#29992;&#31867;&#22411;&#12289;&#22914;&#20309;&#22312;PHP&#20013;&#20351;&#29992;&#23427;&#20197;&#21450;&#28145;&#20837;&#19968;&#20123;&#39640;&#32423;&#27010;&#24565;&#21644;&#26368;&#20339;&#23454;&#36341;&#12290;<\/p><h2>&#29702;&#35299;&#21487;&#35843;&#29992;&#23545;&#35937;&#65288;Callable&#65289;<\/h2><p>&#22312;PHP&#20013;&#65292;&#21487;&#35843;&#29992;&#30340;&#65288;callable&#65289;&#26159;&#25351;&#21487;&#20197;&#34987;&#35843;&#29992;&#20026;&#20989;&#25968;&#30340;&#23545;&#35937;&#12290;&#36825;&#21253;&#25324;&#20256;&#32479;&#30340;&#20989;&#25968;&#12289;&#38745;&#24577;&#21644;&#38750;&#38745;&#24577;&#31867;&#26041;&#27861;&#65292;&#20197;&#21450;&#23454;&#29616;&#20102;__invoke()&#39764;&#26415;&#26041;&#27861;&#30340;&#23545;&#35937;&#12290;<code>__invoke()<\/code>&#39764;&#26415;&#26041;&#27861;&#12290;&#21487;&#35843;&#29992;&#23545;&#35937;&#38750;&#24120;&#28789;&#27963;&#65292;&#21487;&#20197;&#20316;&#20026;&#22238;&#35843;&#20989;&#25968;&#12289;&#20107;&#20214;&#22788;&#29702;&#22120;&#25110;&#31616;&#21333;&#22320;&#20316;&#20026;&#19968;&#31181;&#23553;&#35013;&#20195;&#30721;&#30340;&#26041;&#24335;&#65292;&#22312;&#31245;&#21518;&#25191;&#34892;&#26102;&#36816;&#34892;&#12290;<\/p><h3>&#21487;&#35843;&#29992;&#35821;&#27861;<\/h3><p>&#21311;&#21517;&#20989;&#25968;&#65288;&#38381;&#21253;&#65289;&#65306;<code>function(...) { ... }<\/code><\/p><p>&#23545;&#35937;&#26041;&#27861;&#65306;<code>[$object, 'methodName']<\/code><\/p><p>&#38745;&#24577;&#31867;&#26041;&#27861;&#65306;<code>['ClassName', 'methodName']<\/code><\/p><p>&#31616;&#21333;&#30340;&#21151;&#33021;&#65306;<code>'function_name'<\/code><\/p><h2>&#22312;PHP&#20013;&#20351;&#29992;Callable&#21487;&#20197;&#36890;&#36807;&#35843;&#29992;&#19968;&#20010;&#20989;&#25968;&#25110;&#31867;&#30340;&#23454;&#20363;&#26469;&#23454;&#29616;&#65292;&#36825;&#21487;&#20197;&#29992;&#20110;&#24322;&#27493;&#25805;&#20316;&#25110;&#32773;&#22788;&#29702;&#22238;&#35843;&#12290;<\/h2><p>PHP &#25552;&#20379;&#20102;&#22810;&#31181;&#20869;&#32622;&#20989;&#25968;&#65292;&#36825;&#20123;&#20989;&#25968;&#21487;&#20197;&#25509;&#21463;&#22238;&#35843;&#20316;&#20026;&#21442;&#25968;&#12290;&#20854;&#20013;&#19968;&#20123;&#21253;&#25324;&#65306;<code>array_map()<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>usort()<\/code>&#22909;&#30340;&#65292;&#35831;&#21457;&#36865;&#20320;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>array_filter()<\/code>&#65292;&#20197;&#21450;&#35768;&#22810;&#20107;&#20214;&#39537;&#21160;&#30340;&#25193;&#23637;&#12290;<\/p><h3>&#20351;&#29992;&#31034;&#20363;<code>array_map()<\/code><\/h3><pre><code>$numbers = [1, 2, 3, 4];\n$squared = array_map(function($number) {\n    return $number ** 2;\n}, $numbers);\nprint_r($squared);\n<\/code><\/pre><p>&#35813;&#31034;&#20363;&#25509;&#21463;&#19968;&#20010;&#25968;&#32452;&#65292;&#20854;&#20013;&#21253;&#21547;&#25968;&#23383;&#12290;<code>array_map()<\/code>&#20026;&#25968;&#32452;&#20013;&#30340;&#27599;&#20010;&#20803;&#32032;&#24212;&#29992;&#19968;&#20010;&#21487;&#35843;&#29992;&#65288;&#20363;&#22914;&#65292;&#21311;&#21517;&#20989;&#25968;&#29992;&#20110;&#24179;&#26041;&#25968;&#23383;&#65289;&#30340;&#36816;&#31639;&#12290;<\/p><h2>&#21019;&#24314;Callable<\/h2><p>&#23450;&#20041;&#21487;&#35843;&#29992;&#23545;&#35937;&#21487;&#20197;&#26377;&#22810;&#31181;&#26041;&#27861;&#65306;<\/p><h3>&#21311;&#21517;&#20989;&#25968;<\/h3><pre><code>$greet = function($name) {\n    echo \"Hello $name!\";\n};\n$greet('World'); \/\/ Outputs: Hello World!\n<\/code><\/pre><h3>&#20256;&#32479;&#21151;&#33021;<\/h3><pre><code>function greet($name) {\n    echo \"Hello $name!\";\n}\ncall_user_func('greet', 'PHP'); \/\/ Outputs: Hello PHP!\n<\/code><\/pre><h3>&#31867;&#26041;&#27861;&#65288;Class Methods&#65289;<\/h3><pre><code>class Greeter {\n    public static function sayHello($name) {\n        echo \"Hello $name!\";\n    }\n}\n\ncall_user_func(['Greeter', 'sayHello'], 'User'); \/\/ Outputs: Hello User!\n<\/code><\/pre><h2>&#31867;&#22411;&#25552;&#31034;&#21487;&#35843;&#29992;&#23545;&#35937;<\/h2><p>&#33258;PHP 5.4&#29256;&#26412;&#24320;&#22987;&#65292;&#20320;&#21487;&#20197;&#20026;&#20989;&#25968;&#21442;&#25968;&#31867;&#22411;hint&#12290;<code>callable<\/code>&#34920;&#31034;&#21482;&#26399;&#26395;&#21487;&#35843;&#29992;&#30340;&#21442;&#25968;&#12290;<\/p><pre><code>function process(callable $callback) {\n    $callback();\n}\n\nprocess(function() { echo 'This is a callable!'; });\n<\/code><\/pre><h2>&#35843;&#29992;&#21487;&#35843;&#29992;&#23545;&#35937;<\/h2><p>PHP &#25552;&#20379;&#20102;&#22810;&#31181;&#26041;&#27861;&#26469;&#35843;&#29992;&#21487;&#35843;&#29992;&#23545;&#35937;&#12290;&#26368;&#30452;&#25509;&#30340;&#26041;&#27861;&#26159;&#36890;&#36807;&#20989;&#25968;&#21517;&#25110;&#21311;&#21517;&#20989;&#25968;&#35843;&#29992;&#65292;&#22914;&#26524;&#26159;&#20854;&#20182;&#31867;&#22411;&#30340;&#21487;&#35843;&#29992;&#23545;&#35937;&#65292;&#21017;&#21487;&#20197;&#20351;&#29992;&#31867;&#20284;&#35843;&#29992;&#26222;&#36890;&#21464;&#37327;&#30340;&#26041;&#24335;&#36827;&#34892;&#35843;&#29992;&#12290;<code>call_user_func()<\/code>and<code>call_user_func_array()<\/code>&#36890;&#24120;&#20351;&#29992;&#30340;&#26377;&#65306;<\/p><h3><code>call_user_func()<\/code>&#31034;&#20363;&#12290;<\/h3><pre><code>call_user_func('greet', 'Developer'); \/\/ Using function name\n<\/code><\/pre><h3><code>call_user_func_array()<\/code>&#31034;&#20363;<\/h3><pre><code>call_user_func_array(['Greeter', 'sayHello'], ['Reader']); \/\/ Using class method\n<\/code><\/pre><h2>&#21487;&#35843;&#29992;&#26368;&#20339;&#23454;&#36341;<\/h2><p>&#22312;&#22788;&#29702;&#21487;&#35843;&#29992;&#23545;&#35937;&#26102;&#65306;<\/p><p>&#20351;&#29992;&#31867;&#22411;&#25552;&#31034;&#30830;&#20445;&#32534;&#20889;&#30340;&#21151;&#33021;&#33021;&#22815;&#25509;&#25910;&#21040;&#27491;&#30830;&#30340;&#21442;&#25968;&#31867;&#22411;&#12290;<\/p><p>&#36890;&#36807;&#20351;&#29992;&#22238;&#35843;&#20989;&#25968;&#25110;&#21487;&#35843;&#29992;&#23545;&#35937;&#26469;&#35299;&#32806;&#20195;&#30721;&#12290;<\/p><p>&#32771;&#34385;&#20351;&#29992;&#24615;&#33021;&#30340;&#24433;&#21709;&#12290;<code>call_user_func()<\/code>&#30452;&#25509;&#30005;&#35805;&#36890;&#24120;&#26356;&#24555;&#12290;<\/p><p>&#22312;&#25191;&#34892;&#20043;&#21069;&#65292;&#24635;&#26159;&#20351;&#29992;validate&#26041;&#27861;&#26469;&#39564;&#35777;&#19968;&#20010;&#21487;&#35843;&#29992;&#23545;&#35937;&#12290;<code>is_callable()<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><h2>&#23545;&#19981;&#36215;&#65292;&#25105;&#19981;&#22826;&#26126;&#30333;&#24744;&#30340;&#24847;&#24605;&#65292;&#35831;&#24744;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#12290;<code>__invoke()<\/code>&#39764;&#26415;&#26041;&#27861;&#65288;Magic Methods&#65289;<\/h2><p>PHP&#20801;&#35768;&#23545;&#35937;&#36890;&#36807;&#23454;&#29616;__call()&#26041;&#27861;&#26469;&#35843;&#29992;&#20989;&#25968;&#65292;&#20174;&#32780;&#27169;&#25311;&#20989;&#25968;&#30340;&#35843;&#29992;&#26041;&#24335;&#12290;<code>__invoke()<\/code>&#26041;&#27861;&#12290; &#36825;&#23601;&#26159;&#23427;&#30340;&#24037;&#20316;&#21407;&#29702;&#65306;<\/p><pre><code>class InvokableClass {\n    public function __invoke($arg) {\n        echo \"Invoked with argument $arg\";\n    }\n}\n\n$invokableObject = new InvokableClass();\n$invokableObject('Hello'); \/\/ Outputs: Invoked with argument Hello\n<\/code><\/pre><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;PHP&#20013;&#65292;&#21487;&#35843;&#29992;&#65288;callable&#65289;&#26159;&#19968;&#31181;&#24378;&#22823;&#30340;&#24037;&#20855;&#65292;&#29992;&#20110;&#32534;&#20889;&#28789;&#27963;&#19988;&#21487;&#37325;&#29992;&#30340;&#20195;&#30721;&#12290;&#36890;&#36807;&#29087;&#24713;&#21508;&#31181;&#21487;&#35843;&#29992;&#24418;&#24335;&#30340;&#21019;&#24314;&#21644;&#35843;&#29992;&#65292;&#24320;&#21457;&#20154;&#21592;&#21487;&#20197;&#21033;&#29992;&#21487;&#35843;&#29992;&#26469;&#29983;&#20135;&#25972;&#27905;&#12289;&#27169;&#22359;&#21270;&#21644;&#39640;&#25928;&#30340;&#24212;&#29992;&#31243;&#24207;&#12290;&#27491;&#30830;&#20351;&#29992;&#23427;&#20204;&#38750;&#24120;&#37325;&#35201;&#65292;&#35201;&#32771;&#34385;&#21040;&#23433;&#20840;&#38382;&#39064;&#65292;&#24182;&#36981;&#24490;&#26368;&#20339;&#23454;&#36341;&#20197;&#26368;&#22823;&#21270;&#20195;&#30721;&#36136;&#37327;&#21644;&#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;&#21487;&#35843;&#29992;&#31867;&#22411;&#65288;Callable&#65289;&#26159;&#19968;&#31181;&#29305;&#27530;&#30340;&#20989;&#25968;&#23545;&#35937;&#65292;&#23427;&#20801;&#35768;&#20320;&#23558;&#20989;&#25968;&#20316;&#20026;&#21442;&#25968;&#20256;&#36882;&#32473;&#20854;&#20182;&#20989;&#25968;&#12290;&#36825;&#20351;&#24471; PHP &#26356;&#23481;&#26131;&#22320;&#22788;&#29702;&#22797;&#26434;&#30340;&#19978;&#19979;&#25991;&#21644;&#22238;&#35843;&#38382;&#39064;&#12290;<\/p>\n<h3>&#20160;&#20040;&#26159;&#21487;&#35843;&#29992;&#31867;&#22411;&#65311;<\/h3>\n<p><strong>&#31616;&#32780;&#35328;&#20043;&#65292;&#21487;&#35843;&#29992;&#31867;&#22411;&#23601;&#26159;&#19968;&#31181;&#29305;&#27530;&#30340;&#25968;&#25454;&#31867;&#22411;&#65292;&#23427;&#21487;&#20197;&#34987;&#24403;&#20316;&#20989;&#25968;&#26469;&#20351;&#29992;&#12290;<\/strong> &#36825;&#31181;&#31867;&#22411;&#30340;&#19968;&#20010;&#20363;&#23376;&#26159; <code>Closure<\/code> &#31867;&#22411;&#65292;&#23427;&#26159; PHP &#30340;&#20869;&#32622;&#20989;&#25968;&#20043;&#19968;&#65292;&#21487;&#20197;&#35753;&#20320;&#21019;&#24314;&#33258;&#23450;&#20041;&#30340;&#21311;&#21517;&#20989;&#25968;&#12290;<\/p>\n<h3>&#20351;&#29992;&#21487;&#35843;&#29992;&#31867;&#22411;&#30340;&#31034;&#20363;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>calculateArea()<\/code> &#30340;&#20989;&#25968;&#65292;&#29992;&#20110;&#35745;&#31639;&#30697;&#24418;&#38754;&#31215;&#65306;<\/p>\n<pre><code class=\"language-php\">function calculateArea($length, $width) {\n    return $length * $width;\n}<\/code><\/pre>\n<p>&#29616;&#22312;&#65292;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992; <code>Closure<\/code> &#26469;&#21019;&#24314;&#19968;&#20010;&#24102;&#26377;&#29305;&#23450;&#21442;&#25968;&#30340;&#29256;&#26412;&#65306;<\/p>\n<pre><code class=\"language-php\">function createAreaCalculator($length = null, $width = null) {\n    \/\/ &#22914;&#26524;&#27809;&#26377;&#25552;&#20379;&#38271;&#24230;&#21644;&#23485;&#24230;&#65292;&#21017;&#36820;&#22238;&#40664;&#35748;&#20540;\n    if ($length === null &amp;&amp; $width === null) {\n        return function($area) {\n            return $area;\n        };\n    }\n\n    \/\/ &#25552;&#20379;&#20102;&#38271;&#24230;&#21644;&#23485;&#24230;&#65292;&#36820;&#22238;&#19968;&#20010;&#38381;&#21253;\n    return function($area) use ($length, $width) {\n        return $length * $width;\n    };\n}\n\n\/\/ &#20351;&#29992;\n$calculator = createAreaCalculator(5, 3);\necho $calculator(10); \/\/ &#36755;&#20986;: 50<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>createAreaCalculator<\/code> &#20989;&#25968;&#25509;&#21463;&#20004;&#20010;&#21442;&#25968; <code>$length<\/code> &#21644; <code>$width<\/code>&#65292;&#22914;&#26524;&#23427;&#20204;&#37117;&#20026;&#31354;&#65292;&#23427;&#20250;&#36820;&#22238;&#19968;&#20010;&#31354;&#38381;&#21253;&#65307;&#21542;&#21017;&#65292;&#23427;&#20250;&#36820;&#22238;&#19968;&#20010;&#21253;&#21547;&#36825;&#20004;&#20010;&#21442;&#25968;&#30340;&#38381;&#21253;&#12290;&#36825;&#26679;&#65292;&#26080;&#35770;&#29992;&#25143;&#25552;&#20379;&#20102;&#22810;&#23569;&#21442;&#25968;&#65292;&#37117;&#21487;&#20197;&#36890;&#36807; <code>$calculator<\/code> &#35775;&#38382;&#21040;&#27491;&#30830;&#30340;&#38754;&#31215;&#35745;&#31639;&#36923;&#36753;&#12290;<\/p>\n<h3>&#24635;&#32467;<\/h3>\n<p>&#21487;&#35843;&#29992;&#31867;&#22411;&#20801;&#35768;&#20320;&#22312;&#19981;&#26174;&#24335;&#35843;&#29992;&#20989;&#25968;&#30340;&#24773;&#20917;&#19979;&#35775;&#38382;&#21644;&#25805;&#20316;&#20989;&#25968;&#30340;&#20869;&#37096;&#29366;&#24577;&#12290;&#36825;&#23545;&#20110;&#22788;&#29702;&#22797;&#26434;&#30340;&#19978;&#19979;&#25991;&#21644;&#22238;&#35843;&#38750;&#24120;&#26377;&#29992;&#12290;&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#65292;PHP &#33021;&#22815;&#26356;&#21152;&#28789;&#27963;&#22320;&#24212;&#23545;&#21508;&#31181;&#32534;&#31243;&#38656;&#27714;&#65292;&#24182;&#19988;&#20026;&#24320;&#21457;&#32773;&#25552;&#20379;&#20102;&#19968;&#22871;&#24378;&#22823;&#30340;&#24037;&#20855;&#26469;&#25511;&#21046;&#20854;&#36816;&#34892;&#29615;&#22659;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#12298;PHP &#21487;&#35843;&#29992;&#31867;&#22411;&#65306;&#20840;&#38754;&#25351;&#21335;&#12299; &#22312; PHP &#20013;&#65292;ca..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[41],"tuisongtax":[],"class_list":["post-632","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\/632","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=632"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=632"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=632"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}