2016-04-05 11 views
0

配列ノードの比較演算が、同じ配列ノードへの 'true'の代入に関してどのように機能するかわかりません。これは三項構文の代わりの使用法ですか? PHPのリファレンスへの説明やリンク(私はこれを検索する方法も知らない)のいずれかが役に立ちます。前もって感謝します。この構文構造とは何ですか?どのように機能しますか?

// RESOLVE myvar TO BOOLEAN 
$atts['myvar'] = 'true' == $atts['myvar']; 
+0

コメントは、コードが何をしているかを示します: 'resolve myvar to boolean'ですが、それは_true_ブール値、単に文字列' true'に解決されません。あなたが私に尋ねるならば、ひどいコードです。 'settype($ atts ['myvar']、 'boolean')'が良いでしょう。 –

+0

@MartinBean正規のブール値に適切に解決されます。それは私が見ている最高のコードから遠いですが、私はそれを恐ろしいものと呼んでいません。 –

+0

あなたのおかげで両方。 – fslap

答えて

2

あなたはそのように、これをお読みください:

$atts['myvar'] = ('true' == $atts['myvar']); 

(括弧に保存するとペニーの価値になることはありません)。実行すると、それは、ストリングtrue(4文字)と$atts['myvar']の実際の内容を比較し、次いでによってブールあろう比較の結果と$atts['myvar']を上書きします。それが文字列 "true"に等しい場合、結果はブール値trueであり、それ以外の値はブール値falseになります。つまり、 "string boolean"を正規のブール値に変換します。

+0

簡潔な回答をいただきありがとうございます。これは大いに役立ちます。 – fslap

関連する問題