This is a collection of questions that come up every now and then about syntax in PHP. This is also a Community Wiki, so everyone is invited to participate in maintaining this list.
It used to be hard to find questions about operators and other syntax tokens.¹
The main idea is to have links to existing questions on Stack Overflow, so it's easier for us to reference them, not to copy over content from …
这是关于编程PHP时可能遇到的警告,错误和通知的一些答案,并且不知道如何修复.这也是社区Wiki,因此邀请每个人参与添加和维护此列表.
Stack Overflow上经常弹出诸如"已发送标头"或"调用非对象成员"之类的问题.这些问题的根本原因总是一样的.因此,这些问题的答案通常会重复,然后显示OP在他/她的特定情况下要改变哪一行.这些答案不会为网站添加任何价值,因为它们仅适用于OP的特定代码.具有相同错误的其他用户不能轻易地从中读取解决方案,因为它们过于本地化.这很难过,因为一旦你理解了根本原因,修复错误是微不足道的.因此,该列表试图以一般的方式解释解决方案.
如果您的问题已被标记为重复,请在下面找到您的错误消息并将修复程序应用于您的代码.答案通常包含进一步调查的链接,以防单独的一般答案不清楚.
如果您想贡献,请添加您的"收藏"错误消息,警告或通知,每个答案一个,简短说明它意味着什么(即使它只是突出显示其手册页的术语),可能的解决方案或调试方法和现有问答的清单.此外,随时改善任何现有的答案.
另外,请参阅
PHP 7将于今年11月推出,它将引入Spaceship(<=>)运营商.它是什么以及它是如何工作的?
关于PHP运算符的一般参考问题,这个问题已经有了答案.
=>运算符在以下代码中的含义是什么?
foreach ($user_list as $user => $pass)
Run Code Online (Sandbox Code Playgroud)
该代码是PHP.net上的评论.用户没有指定的值$user_list,$user或$通过.我通常认为这=>意味着等于或大于.
但是,我不确定它的用途,因为它没有分配.我把代码读成了
以上对我没有意义.
这在PHP中是什么意思,什么时候使用它?
=>
Run Code Online (Sandbox Code Playgroud)
另一个例子.
foreach ($parent as $task_id => $todo)
Run Code Online (Sandbox Code Playgroud) 可能重复:
PHP中"=>"是什么意思?
什么$k => $v意思?
有以下匿名递归函数:
$f = function($n) use (&$f) {
return ($n == 1) ? 1 : $n * $f($n - 1);
};
echo $f(5); // 120
Run Code Online (Sandbox Code Playgroud)
我尝试重写为7.4版,但出现错误,请告诉我我所缺少的内容吗?
$f = fn($n) => ($n == 1) ? 1 : $n * $f($n - 1);
echo $f(5);
Run Code Online (Sandbox Code Playgroud)
注意:未定义的变量:f
致命错误:未捕获错误:函数名称必须是字符串
我有这样的代码:
class Foo {
var $callbacks = array();
function __construct() {
$this->callbacks[] = function($arg) {
return $this->bar($arg);
};
}
function bar($arg) {
return $arg * $arg;
}
}
Run Code Online (Sandbox Code Playgroud)
我想在闭包中使用 $this ,我尝试添加use ($this)但是这个抛出错误:
Cannot use $this as lexical variable
Run Code Online (Sandbox Code Playgroud)