问题描述
今天碰到一个很奇怪的问题,测试环境一直出现白屏问题,正常情况下如果哪个地方报错页面上都会有提示的,但是这个没有,还以为是后台哪个环境出了问题。
然后下午把代码提交到预发布的时候也出现了这个问题,甚至把代码全部还原了也还是一样,然后就急了,赶紧找人协助看下,最后在日志里面发现如下错误:
PHP Fatal error: Can't use function return value in write context in xxx.php
解决
百度一下才发现,原来是php的empty方法引起的问题,empty()
的括号里面只能是变量,不能是方法,否则解析错误!这还不算,即使放在一个不可能执行的if里面也会报错:
<?php if (false): ?>
结果:<?= empty(some_func($xxx))?'为空':'不为空' ?>
<?php?>
就因为一个empty导致整个页面报错而且没有任何提示,哎,作为被迫接触php的我表示,php这趟浑水太深,我还没踩透!
扩展
php解析错误日志在这里可以看到:/var/log/php-fpm