我想修剪一个字符串然后检查所述字符串是否为空,如下所示:
if(!empty(trim($string))) { ... }
但由于某些未知原因,这恰好使我的本地Apache崩溃。我得到的唯一错误消息表明Apache停止工作。我的Apache版本是
Apache / 2.4.2(Win32)OpenSSL / 1.0.1c PHP / 5.4.4
以下代码执行得非常完美:
$string = trim($string);
if(!empty($string)) { ... }
所以,我的代码运行得很好。我仍然想知道:为什么Apache会因此而崩溃?在我看来,两个代码片段都是一样的。或者我错过了什么?
谢谢!
答案 0 :(得分:5)
除非您已经运行PHP 5.5:
在PHP 5.5之前,empty()仅支持变量;其他任何东西都会导致解析错误。换句话说,以下将不起作用:empty(trim($ name))。相反,使用trim($ name)== false。
(引自PHP docs)
答案 1 :(得分:0)
运行此类代码时绝对没有意义。
根本不需要它。 trim()
始终返回一个值 - 因此,不会使用任何特殊的empty()
功能。
if(trim($string)) { ... }
// or, better yet
if($string = trim($string)) { ... }
绰绰有余。