{"id":634,"date":"2025-06-11T11:28:05","date_gmt":"2025-06-11T03:28:05","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/sjjg\/634.html"},"modified":"2025-06-11T11:28:05","modified_gmt":"2025-06-11T03:28:05","slug":"%e4%bd%bf%e7%94%a8php%e7%94%9f%e6%88%90%e5%99%a8%ef%bc%9a%e5%ae%9e%e7%94%a8%e6%8c%87%e5%8d%97","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/634.html","title":{"rendered":"\u4f7f\u7528PHP\u751f\u6210\u5668\uff1a\u5b9e\u7528\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>&#29983;&#25104;&#22120;&#65288;Generator&#65289;&#26159;PHP 5.5&#24341;&#20837;&#30340;&#19968;&#31181;&#26032;&#30340;&#29305;&#24615;&#65292;&#23427;&#20801;&#35768;&#20320;&#20197;&#19968;&#31181;&#26356;&#39640;&#25928;&#21644;&#28789;&#27963;&#30340;&#26041;&#24335;&#22788;&#29702;&#22823;&#37327;&#25968;&#25454;&#12290;&#36890;&#36807;&#29983;&#25104;&#22120;&#65292;&#20320;&#21487;&#20197;&#36991;&#20813;&#19968;&#27425;&#24615;&#21152;&#36733;&#22823;&#37327;&#25968;&#25454;&#21040;&#20869;&#23384;&#20013;&#65292;&#20174;&#32780;&#25552;&#39640;&#24212;&#29992;&#31243;&#24207;&#30340;&#24615;&#33021;&#12290;&#19979;&#38754;&#26159;&#19968;&#20123;&#20851;&#20110;&#22914;&#20309;&#20351;&#29992;PHP&#29983;&#25104;&#22120;&#30340;&#23454;&#29992;&#25351;&#21335;&#12290;<\/p>\n<h3>1. &#23450;&#20041;&#29983;&#25104;&#22120;<\/h3>\n<p>&#29983;&#25104;&#22120;&#26159;&#19968;&#31181;&#20989;&#25968;&#65292;&#23427;&#22312;&#27599;&#27425;&#36845;&#20195;&#26102;&#37117;&#20250;&#36820;&#22238;&#19968;&#20010;&#20540;&#65292;&#24182;&#19988;&#21487;&#20197;&#26242;&#20572;&#25191;&#34892;&#12290;&#29983;&#25104;&#22120;&#36890;&#24120;&#20351;&#29992; <code>yield<\/code> &#20851;&#38190;&#23383;&#26469;&#23454;&#29616;&#12290;<\/p>\n<pre><code class=\"language-php\">function generateNumbers($limit) {\n    for ($i = 0; $i &lt; $limit; $i++) {\n        yield $i;\n    }\n}\n\n$generator = generateNumbers(5);\nforeach ($generator as $number) {\n    echo $number . \"n\";\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>generateNumbers<\/code> &#20989;&#25968;&#26159;&#19968;&#20010;&#29983;&#25104;&#22120;&#65292;&#23427;&#20250;&#22312;&#27599;&#27425;&#36845;&#20195;&#26102;&#36820;&#22238;&#19968;&#20010;&#25968;&#23383;&#12290;&#24403; <code>$generator<\/code> &#34987;&#36941;&#21382;&#26102;&#65292;&#27599;&#27425;&#36845;&#20195;&#37117;&#20250;&#35843;&#29992; <code>next()<\/code> &#26041;&#27861;&#24182;&#36820;&#22238;&#19979;&#19968;&#20010;&#25968;&#23383;&#12290;<\/p>\n<h3>2. &#20351;&#29992;&#29983;&#25104;&#22120;&#36827;&#34892;&#26080;&#38480;&#24490;&#29615;<\/h3>\n<p>&#29983;&#25104;&#22120;&#20063;&#21487;&#20197;&#29992;&#20110;&#26080;&#38480;&#24490;&#29615;&#65292;&#20363;&#22914;&#35745;&#31639;&#26000;&#27874;&#37027;&#22865;&#25968;&#21015;&#65306;<\/p>\n<pre><code class=\"language-php\">function fibonacci() {\n    $a = 0;\n    $b = 1;\n    while (true) {\n        yield $a;\n        $temp = $a + $b;\n        $a = $b;\n        $b = $temp;\n    }\n}\n\n$fib = fibonacci();\nforeach ($fib as $num) {\n    if ($num &gt; 100) break;\n    echo $num . \"n\";\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>fibonacci<\/code> &#20989;&#25968;&#26159;&#19968;&#20010;&#26080;&#38480;&#29983;&#25104;&#22120;&#65292;&#23427;&#20250;&#19981;&#26029;&#29983;&#25104;&#26000;&#27874;&#37027;&#22865;&#25968;&#21015;&#20013;&#30340;&#25968;&#23383;&#65292;&#30452;&#21040;&#36935;&#21040;&#22823;&#20110;100&#30340;&#25968;&#23383;&#20026;&#27490;&#12290;<\/p>\n<h3>3. &#22788;&#29702;&#22823;&#25991;&#20214;<\/h3>\n<p>&#23545;&#20110;&#38750;&#24120;&#22823;&#30340;&#25991;&#20214;&#65292;&#20351;&#29992;&#29983;&#25104;&#22120;&#21487;&#20197;&#26174;&#33879;&#20943;&#23569;&#20869;&#23384;&#21344;&#29992;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#65292;&#23637;&#31034;&#22914;&#20309;&#35835;&#21462;&#19968;&#20010;&#24040;&#22823;&#30340;CSV&#25991;&#20214;&#24182;&#29983;&#25104;&#34892;&#65306;<\/p>\n<pre><code class=\"language-php\">function readCsv($filename) {\n    $file = fopen($filename, 'r');\n    while (($row = fgetcsv($file)) !== false) {\n        yield $row;\n    }\n    fclose($file);\n}\n\n$csvFile = 'large_file.csv';\nforeach (readCsv($csvFile) as $row) {\n    print_r($row);\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>readCsv<\/code> &#20989;&#25968;&#26159;&#19968;&#20010;&#29983;&#25104;&#22120;&#65292;&#23427;&#20250;&#36880;&#34892;&#35835;&#21462;CSV&#25991;&#20214;&#24182;&#29983;&#25104;&#27599;&#19968;&#34892;&#30340;&#25968;&#25454;&#12290;<\/p>\n<h3>4. &#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#20351;&#29992;&#29983;&#25104;&#22120;&#26469;&#22788;&#29702;&#19968;&#20010;&#22823;&#22411;&#25968;&#32452;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/\/ &#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#38750;&#24120;&#22823;&#30340;&#25968;&#32452;\n$array = range(1, 1000000);\n\n\/\/ &#20351;&#29992;&#29983;&#25104;&#22120;&#36807;&#28388;&#20986;&#22855;&#25968;\nfunction filterOddNumbers($array) {\n    foreach ($array as $number) {\n        if ($number % 2 != 0) {\n            yield $number;\n        }\n    }\n}\n\n$oddNumbers = filterOddNumbers($array);\nforeach ($oddNumbers as $number) {\n    echo $number . \"n\";\n}\n?&gt;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>filterOddNumbers<\/code> &#20989;&#25968;&#26159;&#19968;&#20010;&#29983;&#25104;&#22120;&#65292;&#23427;&#20250;&#36880;&#20010;&#26816;&#26597;&#25968;&#32452;&#20013;&#30340;&#27599;&#20010;&#20803;&#32032;&#65292;&#24182;&#22312;&#25214;&#21040;&#22855;&#25968;&#26102;&#29983;&#25104;&#35813;&#20803;&#32032;&#12290;<\/p>\n<p>&#36890;&#36807;&#36825;&#20123;&#31034;&#20363;&#65292;&#20320;&#24212;&#35813;&#33021;&#22815;&#26356;&#22909;&#22320;&#29702;&#35299;&#22914;&#20309;&#20351;&#29992;PHP&#29983;&#25104;&#22120;&#26469;&#22788;&#29702;&#22823;&#37327;&#25968;&#25454;&#65292;&#20174;&#32780;&#25552;&#39640;&#24212;&#29992;&#31243;&#24207;&#30340;&#24615;&#33021;&#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;&#35272;<\/h2><p>PHP&#20013;&#30340;&#29983;&#25104;&#22120;&#25552;&#20379;&#20102;&#19968;&#31181;&#31616;&#21333;&#30340;&#26041;&#27861;&#26469;&#23454;&#29616;&#31616;&#21333;&#30340;&#36845;&#20195;&#65292;&#32780;&#26080;&#38656;&#20026;&#23454;&#29616;Iterator&#25509;&#21475;&#20184;&#20986;&#39069;&#22806;&#30340;&#24320;&#38144;&#12290;&#26412;&#25351;&#21335;&#23558;&#24102;&#20320;&#20102;&#35299;&#22914;&#20309;&#20351;&#29992;PHP&#29983;&#25104;&#22120;&#26356;&#39640;&#25928;&#22320;&#22788;&#29702;&#36845;&#20195;&#12290;<\/p><h2>A PHP generator is an iterator that generates values on the fly, one at a time. It&#8217;s useful for creating lazy-loaded sequences of data without storing them all in memory at once. Generators are defined using the yield keyword and can be used with loops like foreach, for, or while.<\/h2><p>&#22312;PHP 5.5&#20013;&#24341;&#20837;&#30340;&#29983;&#25104;&#22120;&#26159;&#19968;&#31181;&#20801;&#35768;&#20320;&#22312;&#25191;&#34892;&#36807;&#31243;&#20013;&#26242;&#20572;&#21644;&#24674;&#22797;&#65292;&#21516;&#26102;&#20445;&#25345;&#29366;&#24577;&#30340;&#20989;&#25968;&#12290;<code>yield<\/code>&#22312;&#20989;&#25968;&#20869;&#37096;&#23450;&#20041;&#30340;&#20851;&#38190;&#23383;&#20351;&#24471;&#23427;&#25104;&#20026;&#29983;&#25104;&#22120;&#65292;&#25552;&#20379;&#20102;&#19968;&#31181;&#31616;&#21333;&#30340;&#26041;&#27861;&#26469;&#36941;&#21382;&#19968;&#32452;&#25968;&#25454;&#32780;&#26080;&#38656;&#22312;&#20869;&#23384;&#20013;&#21019;&#24314;&#25968;&#32452;&#12290;&#36825;&#23545;&#20110;&#22788;&#29702;&#22823;&#22411;&#25968;&#25454;&#38598;&#25110;&#27969;&#26469;&#35828;&#21487;&#20197;&#23454;&#29616;&#26174;&#33879;&#30340;&#24615;&#33021;&#25552;&#21319;&#12290;<\/p><pre><code>function myGenerator() {\n    for ($i = 0; $i &lt; 5; $i++) {\n        yield $i;\n    }\n}\n\nforeach (myGenerator() as $value) {\n    echo $value . PHP_EOL; \/\/ Outputs 0 through 4 each on a new line\n}<\/code><\/pre><h2>&#29983;&#25104;&#22120;&#30340;&#22522;&#26412;&#29992;&#27861;<\/h2><p>&#35753;&#25105;&#20204;&#20174;&#19968;&#20010;&#31616;&#21333;&#30340;&#20363;&#23376;&#24320;&#22987;&#65292;&#21363;&#19968;&#20010;&#20989;&#25968;&#36880;&#20010;&#36820;&#22238;&#23383;&#31526;&#20018;&#20013;&#30340;&#27599;&#20010;&#23383;&#31526;&#65306;<\/p><pre><code>function stringGenerator($string) {\n    for ($i = 0; $i &lt; strlen($string); $i++) {\n        yield $string[$i];\n    }\n}\n\nforeach (stringGenerator('Hello') as $char) {\n    echo $char . ' '; \/\/ Outputs: H e l l o\n}<\/code><\/pre><p>&#27880;&#24847;&#65292;&#29983;&#25104;&#20989;&#25968;&#33021;&#22815;&#32500;&#25252;&#29366;&#24577;&#65292;&#22312;&#35843;&#29992;&#20043;&#38388;&#36880;&#20010;&#20135;&#29983;&#23383;&#31526;&#65292;&#32780;&#19981;&#23384;&#20648;&#19968;&#20010;&#23383;&#31526;&#25968;&#32452;&#12290;<\/p><h2>&#19982;&#22823;&#35268;&#27169;&#25968;&#25454;&#38598;&#24037;&#20316;<\/h2><p>&#19968;&#20010;&#20027;&#35201;&#30340;&#22909;&#22788;&#26159;&#22788;&#29702;&#22823;&#22411;&#25968;&#25454;&#38598;&#12290;&#20197;&#19979;&#31034;&#20363;&#36890;&#36807;&#36880;&#34892;&#35835;&#21462;&#25991;&#20214;&#26469;&#23454;&#29616;&#65306;<\/p><pre><code>function fileLineGenerator($filename) {\n    $file = fopen($filename, 'r');\n\n    while ($line = fgets($file)) {\n        yield $line;\n    }\n    fclose($file);\n}<\/code><\/pre><p>&#27599;&#27425;&#35843;&#29992;&#29983;&#25104;&#22120;&#20989;&#25968;&#26102;&#65292;&#37117;&#20250;&#35835;&#21462;&#19979;&#19968;&#34892;&#65292;&#32780;&#19981;&#21152;&#36733;&#25972;&#20010;&#25991;&#20214;&#21040;&#20869;&#23384;&#20013;&#65306;<\/p><pre><code>foreach (fileLineGenerator('largeFile.txt') as $line) {\n    echo $line;\n}<\/code><\/pre><h2>&#32467;&#21512;&#21457;&#30005;&#26426;<\/h2><p>&#29983;&#25104;&#22120;&#20063;&#21487;&#20197;&#25226;&#20540;&#36820;&#22238;&#32473;&#35843;&#29992;&#32773;&#65292;&#20174;&#32780;&#23454;&#29616;&#21452;&#21521;&#36890;&#20449;&#12290;<\/p><pre><code>function printer() {\n    while (true) {\n        $string = yield;\n        echo $string . PHP_EOL;\n    }\n}\n\n$printer = printer();\n$printer-&gt;send('Hello');\n\/\/ Outputs: Hello\n$printer-&gt;send('World');\n\/\/ Outputs: World<\/code><\/pre><h2>&#39640;&#32423;&#29992;&#27861;&#65306;&#21327;&#31243;<\/h2><p>&#22312;&#26356;&#22797;&#26434;&#30340;&#22330;&#26223;&#19979;&#65292;&#29983;&#25104;&#22120;&#21487;&#20197;&#20316;&#20026;&#21327;&#31243;&#20351;&#29992;&#65292;&#20174;&#32780;&#23454;&#29616;&#24322;&#27493;&#32534;&#31243;&#27169;&#24335;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#25509;&#25910;&#21644;&#20462;&#25913;&#25968;&#25454;&#30340;&#21327;&#31243;&#65306;<\/p><pre><code>function dataProcessor() {\n    while (true) {\n        $data = (yield);\n        \/\/ Do something with $data\n        yield strtoupper($data);\n    }\n}\n\n$processor = dataProcessor();\n$processor-&gt;send(null);\n\nwhile (\n$result = $processor-&gt;send('hello')\n\/\/ Perform operations with the result\n}) {\n    echo 'Processed: ' . $result . PHP_EOL;\n    \/\/ Outputs: Processed: HELLO\n}<\/code><\/pre><p>&#22312;&#36825;&#19968;&#20363;&#23376;&#20013;&#65292;&#27599;&#20010;<code>send()<\/code>&#25805;&#20316;&#23558;&#25968;&#25454;&#21457;&#36865;&#21040;&#21457;&#30005;&#26426;&#36827;&#34892;&#22788;&#29702;&#65292;&#28982;&#21518;&#31435;&#21363;&#36820;&#22238;&#22788;&#29702;&#21518;&#30340;&#25968;&#25454;&#12290;<\/p><h2>&#22788;&#29702;&#26080;&#38480;&#25968;&#25454;&#27969;<\/h2><p>&#26377;&#26102;&#20505;&#65292;&#21487;&#33021;&#38656;&#35201;&#19982;&#26080;&#38480;&#30340;&#25968;&#25454;&#28304;&#24037;&#20316;&#12290;&#29983;&#25104;&#22120;&#38750;&#24120;&#36866;&#21512;&#36825;&#31181;&#22330;&#26223;&#12290;<\/p><pre><code>function infiniteEvenNumbers() {\n    $number = 0;\n    while (true) {\n        yield $number;\n        $number += 2;\n    }\n}<\/code><\/pre><p>&#20320;&#21487;&#20197;&#36845;&#20195;&#29983;&#25104;&#22120;&#24182;&#33719;&#21462;&#26080;&#38480;&#30340;&#20598;&#25968;&#65306;<\/p><pre><code>foreach (infiniteEvenNumbers() as $number) {\n    echo $number . PHP_EOL;\n    if ($number &gt;= 10) { break; } \/\/ limit the output for demonstration purposes\n    \/\/ Outputs 0, 2, 4, 6, 8, 10\n}<\/code><\/pre><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;&#26412;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#25506;&#35752;&#20102;PHP&#29983;&#25104;&#22120;&#30340;&#23454;&#29992;&#24615;&#21644;&#34920;&#36798;&#21147;&#12290;&#20351;&#29992;&#31616;&#21333;&#30340;&#35821;&#27861;&#21644;&#26356;&#39640;&#30340;&#20869;&#23384;&#25928;&#29575;&#65292;&#29983;&#25104;&#22120;&#21487;&#20197;&#24110;&#21161;&#24744;&#20197;&#36164;&#28304;&#26377;&#38480;&#30340;&#26041;&#24335;&#31649;&#29702;&#25968;&#25454;&#36845;&#20195;&#65292;&#36866;&#29992;&#20110;&#22823;&#25968;&#25454;&#38598;&#25110;&#26080;&#38480;&#25968;&#25454;&#38598;&#12290;&#24403;&#24615;&#33021;&#33267;&#20851;&#37325;&#35201;&#65292;&#19988;&#38656;&#35201;&#19968;&#20010;&#26131;&#20110;&#23454;&#29616;&#30340;&#25968;&#25454;&#22788;&#29702;&#35299;&#20915;&#26041;&#26696;&#26102;&#65292;PHP&#29983;&#25104;&#22120;&#26159;&#19968;&#20010;&#24456;&#22909;&#30340;&#24037;&#20855;&#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>&#20351;&#29992;PHP&#29983;&#25104;&#22120;&#26159;&#19968;&#31181;&#38750;&#24120;&#24378;&#22823;&#30340;&#24037;&#20855;&#65292;&#23427;&#21487;&#20197;&#24110;&#21161;&#24320;&#21457;&#32773;&#26356;&#36731;&#26494;&#22320;&#32534;&#20889;&#21644;&#32500;&#25252;&#22797;&#26434;&#30340;PHP&#33050;&#26412;&#12290;&#19979;&#38754;&#26159;&#19968;&#20123;&#20851;&#20110;&#22914;&#20309;&#20351;&#29992;PHP&#29983;&#25104;&#22120;&#30340;&#23454;&#29992;&#25351;&#21335;&#65306;<\/p>\n<h3>1. &#23433;&#35013;PHP Generator<\/h3>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#23433;&#35013;PHP Generator&#12290;&#20320;&#21487;&#20197;&#36890;&#36807;Composer&#26469;&#23433;&#35013;&#23427;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require php-generators\/php-generator<\/code><\/pre>\n<h3>2. &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#39033;&#30446;<\/h3>\n<p>&#25171;&#24320;&#21629;&#20196;&#34892;&#24182;&#23548;&#33322;&#21040;&#20320;&#24819;&#21019;&#24314;&#39033;&#30446;&#30340;&#30446;&#24405;&#12290;<\/p>\n<pre><code class=\"language-bash\">mkdir my-project &amp;&amp; cd my-project<\/code><\/pre>\n<p>&#28982;&#21518;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#26469;&#21021;&#22987;&#21270;&#19968;&#20010;&#26032;&#30340;PHP&#29983;&#25104;&#22120;&#39033;&#30446;&#65306;<\/p>\n<pre><code class=\"language-bash\">php-generate new<\/code><\/pre>\n<h3>3. &#35774;&#32622;&#39033;&#30446;&#37197;&#32622;<\/h3>\n<p>&#36827;&#20837;<code>src<\/code>&#25991;&#20214;&#22841;&#24182;&#32534;&#36753;<code>Generator.php<\/code>&#25991;&#20214;&#65292;&#36825;&#23558;&#26159;&#20320;&#25972;&#20010;&#39033;&#30446;&#30340;&#26681;&#36335;&#24452;&#12290;&#22312;&#36825;&#20010;&#25991;&#20214;&#20013;&#65292;&#20320;&#20250;&#30475;&#21040;&#19968;&#20123;&#39044;&#23450;&#20041;&#30340;&#35774;&#32622;&#36873;&#39033;&#65292;&#27604;&#22914;&#36755;&#20986;&#26684;&#24335;&#65288;&#22914;HTML, CSS, JavaScript&#31561;&#65289;&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace MyProject;\n\nuse Generator;\nuse GeneratorOptions;\n\nclass Generator extends Generator\n{\n    public function __construct(array $options = [])\n    {\n        parent::__construct($options);\n    }\n}<\/code><\/pre>\n<h3>4. &#32534;&#20889;&#20195;&#30721;&#27169;&#26495;<\/h3>\n<p>&#29616;&#22312;&#65292;&#20320;&#21487;&#20197;&#24320;&#22987;&#32534;&#20889;&#20320;&#30340;&#20195;&#30721;&#20102;&#65281;&#22312;<code>src\/MyProject\/ModuleName<\/code>&#25991;&#20214;&#22841;&#19979;&#25214;&#21040;&#30456;&#24212;&#30340;&#27169;&#22359;&#21517;&#65292;&#20363;&#22914;<code>MyModule.php<\/code>&#12290;&#22312;&#36825;&#20010;&#25991;&#20214;&#20013;&#65292;&#20320;&#21487;&#20197;&#20687;&#20351;&#29992;&#20219;&#20309;&#20854;&#20182;PHP&#31867;&#19968;&#26679;&#20351;&#29992;&#36825;&#20010;&#29983;&#25104;&#22120;&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace MyProjectMyModule;\n\nuse Generator;\nuse GeneratorOptions;\n\nclass MyModuleGenerator implements Generator\n{\n    public function generate()\n    {\n        \/\/ &#20320;&#30340;&#29983;&#25104;&#36923;&#36753;&#22312;&#36825;&#37324;...\n    }\n}<\/code><\/pre>\n<h3>5. &#36816;&#34892;&#29983;&#25104;&#22120;<\/h3>\n<p>&#24403;&#20320;&#23436;&#25104;&#20102;&#19968;&#20010;&#27169;&#22359;&#30340;&#29983;&#25104;&#21518;&#65292;&#21487;&#20197;&#36816;&#34892;&#29983;&#25104;&#22120;&#26469;&#29983;&#25104;&#25152;&#26377;&#30456;&#20851;&#30340;&#20195;&#30721;&#25991;&#20214;&#12290;<\/p>\n<pre><code class=\"language-bash\">php-generate run<\/code><\/pre>\n<h3>6. &#20351;&#29992;&#29983;&#25104;&#22120;<\/h3>\n<p>&#19968;&#26086;&#25152;&#26377;&#30340;&#20195;&#30721;&#37117;&#34987;&#29983;&#25104;&#65292;&#20320;&#21487;&#20197;&#30452;&#25509;&#20351;&#29992;&#36825;&#20123;&#25991;&#20214;&#26469;&#26500;&#24314;&#20320;&#30340;&#24212;&#29992;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#20320;&#26377;&#19968;&#20010;&#21517;&#20026;<code>MyModule.php<\/code>&#30340;&#25991;&#20214;&#65292;&#20320;&#21487;&#20197;&#22312;<code>index.php<\/code>&#25991;&#20214;&#20013;&#36825;&#26679;&#35843;&#29992;&#23427;&#65306;<\/p>\n<pre><code class=\"language-php\">require_once 'path\/to\/MyModule.php';\n$module = new MyModule();\n$module-&gt;myMethod(); \/\/ &#35843;&#29992;&#27169;&#22359;&#30340;&#26041;&#27861;<\/code><\/pre>\n<p>&#36825;&#23601;&#26159;&#20351;&#29992;PHP&#29983;&#25104;&#22120;&#30340;&#22522;&#26412;&#36807;&#31243;&#12290;&#24076;&#26395;&#36825;&#20010;&#25351;&#21335;&#23545;&#20320;&#26377;&#25152;&#24110;&#21161;&#65281;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#29983;&#25104;&#22120;&#65288;Generator&#65289;&#26159;PHP 5.5&#24341;&#20837;&#30340;&#19968;&#31181;&#26032;&#30340;&#29305;&#038;#24..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[41],"tuisongtax":[],"class_list":["post-634","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\/634","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=634"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=634"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=634"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}