我剛剛從 php.net 閱讀了有關可調用類型的信息,并假設使用callable關鍵字應該允許將函數作為參數傳遞給另一個函數。但是,我收到警告。這是我嘗試過的:<?phpfunction helloWorld(){ echo 'Hello World!';}function handle(callable $fn){ $fn(); }handle(helloWorld); // Outputs: Hello World!?>但是,我有時會收到以下錯誤:Parse error: syntax error, unexpected 'function' (T_FUNCTION), expecting variable (T_VARIABLE)而有時Warning: Use of undefined constant helloWorld - assumed 'helloWorld' (this will throw an Error in a future version of PHP) in C:\Projects\Sandbox\myphp on line 12Q1。為什么 php 期望helloWorld成為一個變量,它已經被明確定義為一個函數。Q2。顯然,刪除函數定義中的關鍵字callable沒有任何區別。為什么?
1 回答

慕桂英546537
TA貢獻1848條經驗 獲得超10個贊
您應該將參數放在引號中,如下所示:
handle('helloWorld');
而不是
handle(helloWorld);
PHP Docscallable
聲明“ PHP 函數通過其名稱作為字符串傳遞”。
- 1 回答
- 0 關注
- 125 瀏覽
添加回答
舉報
0/150
提交
取消