簡體   English   中英

Php 函數在 `array_map` 中使用時拋出“未定義的常量”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM