ここから本文です

PHPでのif文の省略について。

cet********さん

2014/2/417:36:50

PHPでのif文の省略について。

PHPで、関数(my_function)が何らかの値を返す時はその値を表示して、何も返さない時(falseが返る時)は指定した内容を表示する・・・という条件を記述したい時に、私の知識の範囲で書くと以下のようになるのですが、これをもっと省略して書くことは可能ですか?
これはもう、これ以上は短くならないでしょうか?

if ( my_function() ) {
echo my_function();
} else {
echo 'FALSE';
}

もし、もっとシンプルな方法があれば教えてください。

閲覧数:
343
回答数:
3
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

bim********さん

編集あり2014/2/418:27:23

echo (my_function()) ? my_function() : "unko";

追記:…これだとmy_function()を2回実行しちゃうから
echo ($a = my_function()) ? $a : "unko";
のほうがいいかな

質問した人からのコメント

2014/2/4 22:21:16

追記で書いて下さったコード、これを求めていました!
三項演算子の存在は知っていたのですが、応用の仕方が分かりませんでした。
PHP5.3だったら更に短くできるんですね。5.2でした、残念です。
できるなら全ての方にBAを差し上げたいです。回答ありがとうございました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

mpywさん

編集あり2014/2/421:56:33

PHP5.3以降なら「?:」演算子を使う方法が最有力です。それ以前でもこういうことがしたい若しくはバージョンにとらわれない書き方がしたい場合、

function echo_or($str, $default = 'FALSE') {
echo $str ? $str : $default;
}

のような関数を作っておくと

echo_or(my_function());

とか

echo_or(my_function(), '失敗!');

みたいに出来ますね。あんまり綺麗じゃないですが…これぐらいなら

$r = my_function();
echo $r ? $r : 'FALSE';

で十分かもw

徳丸浩さん

2014/2/421:22:24

PHP5.3.0以降であれば、

echo my_function() ? : 'FALSE';

でいけますね。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる