这是关于编程PHP时可能遇到的警告,错误和通知的一些答案,并且不知道如何修复.这也是社区Wiki,因此邀请每个人参与添加和维护此列表.
Stack Overflow上经常弹出诸如"已发送标头"或"调用非对象成员"之类的问题.这些问题的根本原因总是一样的.因此,这些问题的答案通常会重复,然后显示OP在他/她的特定情况下要改变哪一行.这些答案不会为网站添加任何价值,因为它们仅适用于OP的特定代码.具有相同错误的其他用户不能轻易地从中读取解决方案,因为它们过于本地化.这很难过,因为一旦你理解了根本原因,修复错误是微不足道的.因此,该列表试图以一般的方式解释解决方案.
如果您的问题已被标记为重复,请在下面找到您的错误消息并将修复程序应用于您的代码.答案通常包含进一步调查的链接,以防单独的一般答案不清楚.
如果您想贡献,请添加您的"收藏"错误消息,警告或通知,每个答案一个,简短说明它意味着什么(即使它只是突出显示其手册页的术语),可能的解决方案或调试方法和现有问答的清单.此外,随时改善任何现有的答案.
另外,请参阅
如何通过"order"键的值对此数组进行排序?尽管这些值目前是连续的,但它们并不总是如此.
Array
(
[0] => Array
(
[hashtag] => a7e87329b5eab8578f4f1098a152d6f4
[title] => Flower
[order] => 3
)
[1] => Array
(
[hashtag] => b24ce0cd392a5b0b8dedc66c25213594
[title] => Free
[order] => 2
)
[2] => Array
(
[hashtag] => e7d31fc0602fb2ede144d18cdffd816b
[title] => Ready
[order] => 1
)
)
Run Code Online (Sandbox Code Playgroud) 我不是PHP编程方面的专家,但我有点困惑为什么我在PHP中看到一些代码用单引号放入字符串的代码,有时用双引号.
我只知道在.NET或C语言中,如果它是单引号,这意味着它是一个字符,而不是一个字符串.
每个人都遇到语法错误.即使是有经验的程序员也会犯错误.对于新手来说,这只是学习过程的一部分.但是,通常很容易解释错误消息,例如:
PHP Parse错误:语法错误,第20行的index.php中出现意外的'{'
意想不到的符号并不总是真正的罪魁祸首.但是行号给出了从哪里开始寻找的粗略想法.
始终查看代码上下文.语法错误往往隐藏在提及或在前面的代码行.将您的代码与手册中的语法示例进行比较.
虽然不是每个案例都匹配另一个案例 然而,有一些常规步骤可以解决语法错误.这篇文章总结了常见的陷阱:
意外的T_FUNCTION ......
意外T_IF
意外T_FOREACH
意外T_FOR
意外T_WHILE
意外T_DO
意外T_PRINT
意外T_ECHO
意外的T_INLINE_HTML ......
意外的T_PAAMAYIM_NEKUDOTAYIM ......
意外的T_OBJECT_OPERATOR ......
意外的T_DOUBLE_ARROW ......
意想不到的T_SL ......
意外的T_BOOLEAN_OR ...
意外的T_BOOLEAN_AND ......
意外的T_NS_SEPARATOR ......
我见过@某些功能的使用,如下所示:
$fileHandle = @fopen($fileName, $writeAttributes);
Run Code Online (Sandbox Code Playgroud)
这个符号有什么用?
这是根据官方文档的信息:
可以在PHP中使用四对不同的开始和结束标记.其中两个,
<?php ?>并且<script language="php"> </script>始终可用.另外两个是短标签和ASP样式标签,可以从php.ini配置文件打开和关闭.因此,虽然有些人发现短标签和ASP样式标签很方便,但它们的便携性较差,一般不推荐.
在我的经验,大多数服务器都启用短标记.打字
<?=
Run Code Online (Sandbox Code Playgroud)
打字要方便得多
<?php echo
Run Code Online (Sandbox Code Playgroud)
程序员的便利是一个重要因素,为什么不推荐他们?
==和之间有什么区别===?
==比较究竟是如何运作的?===比较究竟是如何运作的?什么是有用的例子?
我有一个代码库,开发人员决定使用AND而OR不是&&和||.
我知道运营商的优先级(&&之前and)有所不同,但是对于给定的框架(PrestaShop来说准确),显然不是理由.
你使用的是哪个版本?是and不是更具有可读性&&?或者没有区别?
此问题旨在作为有关在PHP中排序数组的问题的参考.很容易认为您的特定情况是独一无二的,值得一个新问题,但大多数实际上是本页面上其中一个解决方案的微小变化.
如果您的问题与此问题的副本相同,请仅在您能够解释为何与以下所有问题明显不同时才要求重新打开您的问题.
如何在PHP中对数组进行排序?
如何在PHP中对复杂数组进行排序?
如何在PHP中对对象数组进行排序?
有关使用PHP现有函数的实际答案,请参阅1.,有关排序算法的学术详细答案(PHP的函数实现以及您可能需要哪些非常复杂的案例),请参阅参考资料2.
我今天在一些PHP代码中看到了这个:
$items = $items ?: $this->_handle->result('next', $this->_result, $this);
Run Code Online (Sandbox Code Playgroud)
我不熟悉?:这里使用的运算符.它看起来像一个三元运算符,但是省略了判断谓词是否为真的表达式.这是什么意思?