PHPでtrimとemptyを同時に使う
PHP で文字列が空じゃないかを調べる時って empty を使いますよね。
でも、empty だけだと変数に半角スペースだけセットされてるような場合には判定できないので、trim をしてから empty で判定したい。
が、以下の様に書くとエラーになってしまいます。
で、こういう場合どうすれば良いか?
もちろん、先に $text = trim ($text) とかしておいても良いんですが、出来れば一気に処理してしまいたい。
そんな時のお話。
で、いきなり答え。
そんな時はコレで一発で処理できます。
そっか~って感じなんですけど、これは便利。
動作としては以下の様な感じ。
# php -a
Interactive shell
php > $text = '';
php > if (trim($text) == false) echo 'empty!';
empty!
php > $text = 'a';
php > if (trim($text) == false) echo 'empty!';
php >
php > $text = ' a ';
php > if (trim($text) == false) echo 'empty!';
php >
php > $text = ' ';
php > if (trim($text) == false) echo 'empty!';
empty!
期待通り $text が空だったり、半角スペースだけで構成されていたりする場合を拾うことが出来ます。
一応、マニュアルにも書いてあります。
empty() は、変数のみをチェックし、それ以外の値を チェックすると文法エラーを生成します。つまり、 empty(trim($name)) は動作しません。かわりに trim($name) == false を使います。
上記の例だと、全角のスペースは処理されませんが、事前に全角スペースを除去する処理を入れるか、trim で charlist で全角スペースを入れて実行すると行けるかも知れません。
コメント