[英]Why can I not pass an additional parameter when using array_map within PHP?
[英]Php function throws "undefined constant" when using within `array_map`
我得到一個
注意:使用未定義的常量 ord - 假定為 'ord'
在線的
array_map(ord,str_split($string))
這很令人驚訝,因為ord
是一個php 函數
如果我將調用重寫為:
array_map(function ($x) {return ord($x);},str_split($string))
該代碼在沒有任何警告/通知的情況下工作
知道這是為什么嗎?
函數名應傳遞一個字符串回調參數。
PHP 函數通過其名稱作為字符串傳遞。 可以使用任何內置或用戶定義的函數,但語言結構除外,例如:array()、echo、empty()、eval()、exit()、isset()、list()、print 或 unset() .
array_map("ord",str_split($string))
根據編輯過的問題進行編輯。
匿名函數不是其他一些可調用函數的名稱,因此它們不需要作為字符串文字傳遞。 該要求僅用於傳遞定義的可調用函數的名稱,而不是匿名函數。
除了常見的用戶自定義函數,匿名函數也可以傳遞給回調參數。
ord
在匿名函數中沒有引號就可以正常工作,因為在那里它沒有作為可調用對象傳遞,它只是在另一個函數體內的變量上被調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.