这是关于编程PHP时可能遇到的警告,错误和通知的一些答案,并且不知道如何修复.这也是社区Wiki,因此邀请每个人参与添加和维护此列表.
Stack Overflow上经常弹出诸如"已发送标头"或"调用非对象成员"之类的问题.这些问题的根本原因总是一样的.因此,这些问题的答案通常会重复,然后显示OP在他/她的特定情况下要改变哪一行.这些答案不会为网站添加任何价值,因为它们仅适用于OP的特定代码.具有相同错误的其他用户不能轻易地从中读取解决方案,因为它们过于本地化.这很难过,因为一旦你理解了根本原因,修复错误是微不足道的.因此,该列表试图以一般的方式解释解决方案.
如果您的问题已被标记为重复,请在下面找到您的错误消息并将修复程序应用于您的代码.答案通常包含进一步调查的链接,以防单独的一般答案不清楚.
如果您想贡献,请添加您的"收藏"错误消息,警告或通知,每个答案一个,简短说明它意味着什么(即使它只是突出显示其手册页的术语),可能的解决方案或调试方法和现有问答的清单.此外,随时改善任何现有的答案.
另外,请参阅
PHP 7.4 引入了箭头函数。它还引入了隐式按值范围绑定,从而消除了对use关键字的需要。
现在,如果我们想通过引用常规匿名函数来使用闭包范围之外的变量,我们将这样做:
$num = 10;
call_user_func(function() use (&$num) {
$num += 5;
});
echo $num; // Output: 15
Run Code Online (Sandbox Code Playgroud)
但是使用箭头函数似乎是不可能的
$num = 10;
call_user_func(fn() => $num += 5);
echo $num; // Output: 10
Run Code Online (Sandbox Code Playgroud)
那么如何$num通过引用来使用变量呢?
我了解PHP 7.4中的箭头功能。我尝试像这样使用它们
<?php
$num = 1;
$arrowfunction = () => {
return $num + 1;
}
echo $arrowfunction();
Run Code Online (Sandbox Code Playgroud)
因为我=>在拉取请求中看到了运算符。就像JavaScript。
我希望输出为“ 2”,但这没有用!我有
解析错误:语法错误,第3行/test.php中出现意外的')'