2012-03-20 11 views
0

このIF条件を書くにはどうすればよいですか(エラーが発生した瞬間はどこか分かりません)?最初の部分に2つの変数を持つPHP略語

$gll_name = ($gll_id != NULL ? $w = $this->gallery_model->gallery_get_one_user($gll_id); $w->name : " "); 
+0

エラーは関数呼び出しの後の ';'にあります。あなたはその句に1つの式しか持たないことができます。 – jlb

+3

お願いします。文章の長さを書くことを学びます。特に3者を使ってみると完全に理解できない(そしてうまくいきません)場合 –

答えて

3

2つの変数は必要ありません。また、 "略語ifs"ではコロンを使用できません。 (私は、視認性のためにインデントを追加していることに注意して、彼らはこのような場合にはPHPには関係ありません)

$gll_name = (
    $gll_id != NULL 
    ? $this->gallery_model->gallery_get_one_user($gll_id)->name 
    : " "); 

としても(!==代わりの!=を使用して)厳しい条件を、考えてみます。これは動作するはずですPHPはNULLへ(==)等しくなるように、すべての偽っぽい値(nullfalse0など)を扱いますが、唯一のNULLNULLへ(===)厳密に同じです。デモンストレーションについては、http://ideone.com/8ENsX

+0

あなたの言葉を取るそのためにはうまくいくはずですが、はるかに良い提案は「すぐに理解できないコードを試行しない」ことです。式の分割はここでは最初のオプションにする必要があります。 – Jon

+0

それは働いています。説明をありがとうございます:) – Sasha

+0

@ジョン:私は理解していないコードを書くべきではないことに同意しますが、 "_splitting the expression_"はどういう意味ですか? – Tadeck

1

あなたがしようとしていることは意味がありません。偽例えば

'correct' : 'not good' ; 
場合と値:あなたは

$gll_name = 

のように代入演算子を開始する必要が続いてその後

(1 == 1 && 2 == 2) ? 

その後例えば疑問符で値がtrueの場合にあなたの条件を入れて

平等化

$gll_name = (1 == 1 && 2 == 2) ? 'correct' : 'not good' ; 
関連する問題