{"id":852,"date":"2023-12-05T10:24:48","date_gmt":"2023-12-05T02:24:48","guid":{"rendered":"http:\/\/www.inhhh.com\/blog\/?p=852"},"modified":"2023-12-05T10:24:48","modified_gmt":"2023-12-05T02:24:48","slug":"php%e4%b8%adcall_user_func_array%e5%87%bd%e6%95%b0%e7%9a%84%e7%94%a8%e6%b3%95%e6%bc%94%e7%a4%ba","status":"publish","type":"post","link":"http:\/\/www.inhhh.com\/blog\/?p=852","title":{"rendered":"PHP\u4e2dcall_user_func_array()\u51fd\u6570\u7684\u7528\u6cd5\u6f14\u793a"},"content":{"rendered":"\n<p>call_user_func\u51fd\u6570\u662f\u5f53\u9700\u8981\u52a8\u6001\u8c03\u7528\u51fd\u6570\u65f6,\u624d\u4f7f\u7528\u7684\uff0c\u8fd9\u4e2a\u51fd\u6570\u6709\u4e24\u79cd\u7528\u6cd5\uff1a<br>\u7b2c\u4e00\u79cd\u662f\u8c03\u7528\u5b64\u72ec\u7684\u51fd\u6570\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\r\nfunction funa($b,$c)\r\n{\r\n    echo $b;\r\n    echo $c;\r\n}\r\ncall_user_func('funa', \"111\",\"222\");\r\ncall_user_func('funa', \"333\",\"444\");\r\n\/\/\u663e\u793a 111 222 333 444\r\n\/\/\u5927\u5bb6\u6709\u6ca1\u6709\u53d1\u73b0\uff0c\u8fd9\u4e2a\u7528\u6cd5\u6709\u70b9\u50cfjavascript\u4e2d\u7684call\u65b9\u6cd5\uff0c\u563f\u563f\r\n?><\/code><\/pre>\n\n\n\n<p>\u7b2c\u4e8c\u79cd\u662f\u8c03\u7528\u7c7b\u5185\u90e8\u7684\u51fd\u6570\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\r\nclass a {\r\n    function b()\r\n    {\r\n        $args = func_get_args();\r\n        $num = func_num_args();\r\n        print_r($args);\r\n        echo $num;\r\n    }\r\n}\r\ncall_user_func(array(\"a\", \"b\"),\"111\",\"222\");\r\n?><\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u8fd9\u4e2a\u4f8b\u5b50\uff0c\u81ea\u5df1\u8fd0\u884c\u4e00\u4e0b\u770b\u770b\u7ed3\u679c\u662f\u4ec0\u4e48\u5427~\u563f\u563f~\u63d0\u793a\u4e00\u4e0b<br><strong>func_get_args()\u51fd\u6570\u662f\u83b7\u53d6\u4f20\u5165\u5230\u51fd\u6570\u4e2d\u7684\u53c2\u6570\uff0c\u8fd4\u56de\u4e00\u4e2a\u6570\u7ec4<\/strong>\uff0c<br><strong>func_num_args()\u51fd\u6570\u83b7\u53d6\u4f20\u5165\u51fd\u6570\u4e2d\u7684\u53c2\u6570\u7684\u4e2a\u6570\u3002<br><\/strong><br>\u4e0b\u9762\u518d\u6765\u770b\u770b<strong>call_user_func_array<\/strong>\u51fd\u6570<br>\u8fd9\u4e2a\u51fd\u6570\u4e5f\u662f\u5f53\u9700\u8981\u52a8\u6001\u8c03\u7528\u51fd\u6570\u65f6\u7528\u5230\u7684\uff0c\u5b83\u7684<strong>\u7528\u6cd5\u548ccall_user_func\u51fd\u6570\u6bd4\u8f83\u50cf\uff0c\u53ea\u662f\u53c2\u6570\u4f20\u5165\u7684\u662f\u6570\u7ec4<\/strong>\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function a($b, $c)\r\n{\r\n    echo $b;\r\n    echo $c;\r\n}\r\ncall_user_func_array('a', array(\"111\", \"222\"));\r\n\/\/\u663e\u793a 111 222\r\n?>\r\ncall_user_func_array\u51fd\u6570\u4e5f\u53ef\u4ee5\u8c03\u7528\u7c7b\u5185\u90e8\u7684\u65b9\u6cd5\u7684\r\n&lt;?php\r\nClass ClassA\r\n{\r\n    function bc($b, $c) {\r\n        $bc = $b + $c;\r\n        echo $bc;\r\n    }\r\n}\r\ncall_user_func_array(array(\u2018ClassA','bc'), array(\u201c111\u2033, \u201c222\u2033));\r\n\/\/\u663e\u793a 333\r\n?><\/code><\/pre>\n\n\n\n<p>\u4e0b\u9762\u518d\u770b\u4e00\u4e2a\u52a8\u6001\u8c03\u7528\u51fd\u6570\u7684\u4f8b\u5b50\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1 &lt;?php\r\n 2 function f_test1($i)\r\n 3 {\r\n 4     echo \"this function have one param \";\r\n 5     echo $i;\r\n 6 }\r\n 7 \r\n 8 function f_test2($i,$j)\r\n 9 {\r\n10     echo \"this function have two param \";\r\n11     echo $i,$j;\r\n12 }\r\n13 function f_test3($i,$j,$m)\r\n14 {\r\n15     echo \"this function have three param \";\r\n16     echo $i,$j,$m;\r\n17 \r\n18 }\r\n19 function f_test()\r\n20 {\r\n21     $args = func_get_args();  \/\/\u83b7\u53d6\u4f20\u8fc7\u6765\u7684\u53c2\u6570\r\n22     $nums = func_num_args();  \/\/\u83b7\u53d6\u4f20\u8fc7\u6765\u7684\u53c2\u6570\u4e2a\u6570\r\n23     call_user_func_array('f_test'.$nums, $args);\r\n24 }\r\nf_test(4,5);\r\n\/\/\u8f93\u51fathis function have two param 45\n?><\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>call_user_func\u51fd\u6570\u662f\u5f53\u9700\u8981\u52a8\u6001\u8c03\u7528\u51fd\u6570\u65f6,\u624d\u4f7f\u7528\u7684\uff0c\u8fd9\u4e2a\u51fd\u6570\u6709\u4e24\u79cd\u7528\u6cd5\uff1a\u7b2c\u4e00\u79cd\u662f\u8c03\u7528\u5b64\u72ec\u7684\u51fd\u6570\uff1a<\/p>\n<div class=\"more-link\">\n\t\t\t\t <a href=\"http:\/\/www.inhhh.com\/blog\/?p=852\" class=\"link-btn theme-btn\"><span>Read More <\/span> <i class=\"fa fa-caret-right\"><\/i><\/a>\n\t\t\t<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-852","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=852"}],"version-history":[{"count":1,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/852\/revisions"}],"predecessor-version":[{"id":853,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/852\/revisions\/853"}],"wp:attachment":[{"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=852"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}