2009-10-05 18 views
12

私は問題を解決しようとすると、文は何これを言っている場合を理解する必要がありますよ:PHPのif文に1つの等号...?これは何を意味するのでしょうか?

if ($confirmation = $payment_modules->confirmation()) { 

私は二重の等号ではなく、単一で文場合にのみ表示さ見つけることができるすべてのリソース。これは、phpの略記形式の1つですか?それは何ですか?

(実際に構文が間違っている場合は、二重等号に変更しても問題は解決されません)一部のシナリオではtrueを返します。ブラウザをリフレッシュするまで真)。

何か助けてくれれば幸いです!

+0

皆さん、ありがとうございました。うわー、欲求不満の真っ只中にすばやく役立つ返信を受け取ることが、どれほど爽快であるかを教えてください!私は今まで使ってきたものについて以下にコメントしました。ありがとう! – FrustratedPHPnovice

答えて

17

に等しいだろうはい。これを失敗時にfalse(または同等のもの)を返す関数と組み合わせて、割り当てとチェックを同時に行うことができます。

これを理解するには、割り当ては一種の式なので、(すべての式と同様に)戻り値があることに注意してください。その戻り値は、変数に入れられたものと等価です。あなたは、同時にこれらの変数のすべてを割り当てることが

a = b = c = 0;

ような何かを行うことができます理由です。

+0

パーフェクト、ありがとう!それは私が理解できる!今だけ把握する理由は$ payment_modules->私はブラウザを更新した後 – FrustratedPHPnovice

+0

チェックマークをクリックし@FrustratedPHPnoviceまで確認は()空であります! ;)hehehe –

+0

ええ、それを受け入れるように、この答えの隣に... – nickf

0

=は、代入($ a = 1)、==(true == falseはfalse)を意味します。あなたの例では、それが確認の戻り値に割り当てられるので、=を使用するべきだと思います。これは、trueと評価されるものでなければなりません。

はのvar_dumpをやってみてください。

var_dump($payment_modules->confirmation()); 

それが評価され、そこから、トラブルシューティングすることができますどのようなブール値を参照してください。さらに詳しいヘルプが必要な場合は、さらにコードを投稿してください。

$confirmation = $payment_modules->confirmation(); 
if ($confirmation) { 

} 
+0

var_dumpのアイディアも役に立ちました。リフレッシュする前はnullで、リフレッシュ後に配列の内容でいっぱいになります。あなたの超高速応答とより多くのヘルプのおかげで、ありがとう。私はこの情報を取ってもう少し先に実行しましょう。 – FrustratedPHPnovice

0

時々、人々は割り当てをしたいと、その後の割り当てが通過したかどうかを確認:

class test() { 
    public function confirmation() { return true; } 
} 

$boolean = test::confirmation(); 
var_dump($boolean); 

は、それはこのとまったく同じです速記の形、だtrue

7

$payment_modules->confirmation()の値を最初に$confirmationに割り当てます。 =演算子は、新しい値$confirmationに評価されます。

これは、書き込みと同様の効果を有する:

$confirmation = $payment_modules->confirmation(); 
if ($confirmation) { 
    // this will get executed if $confirmation is not false, null, or zero 
} 
+3

これはメタ観測の詳細ですが、回答がほぼ同じで、担当者の方が最初に回答しても、担当者の低い人が、興味深い社会現象はすべてです。 +1そのコードと一緒に明確な説明を持っています。 – mrduclaw

4

$payment_modules->confirmation()trueある場合、$confirmationtrueに設定され、その後、割り当てが返すように割り当てが、割り当てられた値を返すためのコードが動作truefalseの場合も同じです。

だから、コマンドを使用してa = b = 0のように多くの変数に割り当てることができます。 bに0を割り当て、そのゼロを返します。したがって、a = 0になります。aはゼロを受け取り、ゼロを返します。使用できる、または使用できません。

関連する問題