一般的なテクノロジーは誰もが知っていますが、その詳細が高さを決定します。今日は、php の ++ と論理演算子の詳細について説明します。
++ 変数が 1 ずつ増加することは誰もが知っていますが、++ は以前の点を指します。 ++ 以降 ++;
$a=5;$b=0;
$a++ //a=6;これは確かです
$b=$a++;//この $b は何に等しいですか? ? $b=5、これは最初に割り当てられ、次に $a++;
$b=++$a;//この時点で $b は何に等しいですか? ++ が最初に実行されてから割り当てられるため、$b は 6 に等しくなります
同様に、いくつかの方程式を得ることができます:
$a++*4=20;
++$a*4=24;
これらの詳細は、場合によってはプログラムにバグを引き起こす可能性があり、エラーを報告するのは簡単ではありません。
++ と論理演算子の組み合わせについての質問です:
if($a>0||++$b>0){
echo $b; は何に等しいですか? $b は 0 に等しい; || ロジックの実行ルールは、最初のロジックが確立されている限り、2 番目のロジックは実行されないためです
}
if($a++>5||$ b>0){
//入ってくれる?答えは「いいえ」です。なぜなら、最初に比較され、次に $a が +1 になるからです
}
今日は珍しくエレガントなので、スイッチの詳細に注目します:
function test(variable) ){
switch(variable) {
case 1:echo '関数の変数は 1;break;
case 2:echo '関数の変数は 2;break;
case 3:echo '関数の変数は 3break;
default:echo '関数の変数が値の範囲にありません';
}
}
test(1)==>ケース1は間違いなく実行:
test('1')==>これはそれを実行します?結果として、case1 が同じ方法で実行されます。これは、case の背後にある変数の型が渡されたパラメータの型と異なる場合、switch で渡されたパラメータに可能な限り一致するように型を自動的に変更することを示しています。ここで疑問に思う人もいるかもしれません。なぜパラメータの型ではなく、数値の型が変わっているのでしょうか?
心配しないで、今すぐ証明しましょう:
test(true);==>これはどれを実行しますか? ===》答えは、ケース 1 が実行されるということです。1 はスイッチのパラメータにできるだけ合わせて直接 boll 型に変換されるため、頭を使うのが大好きな小さな友人はまた言いました、true も得られます。変換後は 1 になりますが、後続のパラメータが転送されることを証明するには、テスト関数を変更するだけです。
function test(variable){
switch(variable){
case '12345':echo '関数の変数は 1;break;
case 2:echo '関数の変数は 2;break;
case 3:echo '関数の変数は 3break;
default:echo '関数の変数は値の範囲内にありません';
}
}
ほら、これは次のことが不可能であることを証明しています。 true に変換すると '12345' と一致しますが、 '12345' 変換は true と一致する可能性があります。これで証明は終わりです。しっかりした基礎を持っていない友人に役立つことを願っています。実際、同じ言語は php、js、ruby、asp.net だけではありません。共通点が多いので、すべて理解できます。
上記では、php++ と php を含む論理演算の詳細を紹介します。PHP チュートリアルに興味のある友人に役立つことを願っています。