2012-12-13 6 views
5

PHPでjavascripts loose variable handlingを模倣できる方法はありますか? 例えば、PHPで私はJavaScriptでこれがはjavascripts = b && b.cに相当するphpです。 d

instituteID = p.regInstituteName && p.regInstituteName.id || null; 

のdoesntに凝縮う一方

$instituteID = (isset($p['regInstituteName']) && isset($p['regInstituteName']['ID'])) ? $p['regInstituteName']['ID'] : null; 

を記述する必要は違いの多くのように思えるが、それは基本的に

+0

ありません。あなたの最善の策は、怠惰なOR '||'を置き換えるための凝縮された三項演算子 '?:'です。 –

+0

私の個人的意見では、このような単純な表現をコード化するのが最善の方法ではありません。将来あなたのコードを理解しようとする純粋な人について考えてみてください。 –

+0

個人的には、これを次のように使用する関数に抽象化します。 '$ institureId = ifDefined($ p、 'regInstituteName.ID')' – Deestan

答えて

7

を加算します。..いいえ。過去にはhave been some proposalsがありましたが、却下されました。

を編集してください。E_NOTICEエラーが発生した場合に最適化することができます。しかし、私はそれに反対することをお勧めします。

+0

凝縮三元はどうですか? –

+0

それを解決しません。 OPはまず 'isset()'を実行する必要があり、 'isset($ x)|| $ x'はブール値になります。 – Evert

2

お客様のケースにはissetの1つが必要です。

$p['regInstituteName']['ID']が設定されている場合は、常に$p['regInstituteName']が設定されます。

$instituteID = isset($p['regInstituteName']['ID']) ? $p['regInstituteName']['ID'] : null; 
+0

それを知りませんでした。確かな道を取ると思ったが、このヒントのおかげで – lordvlad

関連する問題