0

次のように、文字列をトリミングしてから、その文字列が空であることを確認します。

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 がクラッシュするのでしょうか? 私の目には、両方のコード スニペットは同じです。または、何か不足していますか?

ありがとう!

4

2 に答える 2

5

すでに PHP 5.5 を実行していない場合:

PHP 5.5 より前では、 empty() は変数のみをサポートしていました。それ以外は解析エラーになります。つまり、次は機能しません: empty(trim($name))。代わりに、trim($name) == false を使用してください。

( PHPドキュメントから引用)

于 2013-07-23T12:02:29.433 に答える
0

このようなコードを実行してもまったく意味がありません。

まったく必要ありません。trim()常に値を返すため、特別なempty()機能は使用されません。

if(trim($string)) { ... }
// or, better yet
if($string = trim($string)) { ... }

十分すぎるでしょう。

于 2013-07-23T14:11:17.483 に答える