我剛剛從 php.net 閱讀了有關(guān)可調(diào)用類型的信息,并假設(shè)使用callable關(guān)鍵字應(yīng)該允許將函數(shù)作為參數(shù)傳遞給另一個函數(shù)。但是,我收到警告。這是我嘗試過的:<?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成為一個變量,它已經(jīng)被明確定義為一個函數(shù)。Q2。顯然,刪除函數(shù)定義中的關(guān)鍵字callable沒有任何區(qū)別。為什么?
1 回答

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