当前位置:  开发笔记 > 编程语言 > 正文

在`array_map`中使用时,Php函数抛出"未定义的常量"

如何解决《在`array_map`中使用时,Php函数抛出"未定义的常量"》经验,为你挑选了1个好方法。

我得到了一个

注意:使用未定义的常量ord - 假设'ord'

在线

array_map(ord,str_split($string))

这是令人惊讶的,因为ord是一个PHP功能

如果我要将呼叫重写为:

array_map(function ($x) {return ord($x);},str_split($string))

代码无需任何警告/通知即可运行

知道为什么会这样吗?



1> Hanky Panky..:

函数名应传递一个字符串到一个回调参数.

PHP函数的名称作为字符串传递.可以使用任何内置或用户定义的函数,除了语言结构,例如:array(),echo,empty(),eval(),exit(),isset(),list(),print或unset() .

array_map("ord",str_split($string))

根据编辑的问题进行编辑.

匿名函数不是某些其他可调用函数的名称,因此它们不需要作为字符串文字传递.该要求仅用于传递已定义的可调用函数的名称,而不是匿名函数.

除了常见的用户定义函数,匿名函数也可以传递给回调参数.

ord 在匿名函数中没有引号的情况下工作正常,因为在那里它不作为可调用函数传递,它只是在另一个函数体内的变量上调用.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有