この記事では主に、{} ブロックレベルのスコープと && または || の優先事項について説明します。皆様のお役に立てれば幸いです。
and or は && よりも優先度が低く、= よりも低くなります。
したがって、$b1 = $bA および $bB
の最初の演算は $b1 = $bA
となります。 $b1 = $bA and $bB
先运算的是$b1 = $bA
。
$bA = true;$bB = false;$b1 = $bA and $bB;$b2 = $bA && $bB; var_dump($b1); // $b1 = truevar_dump($b2); // $b2 = false$bA = false;$bB = true;$b3 = $bA or $bB;$b4 = $bA || $bB; var_dump($b3); // $b3 = falsevar_dump($b4); // $b4 = true
php中{}外面是可以取到其内部值的。PHP有函数作用域,但是没有块级作用域。
if(1){ $a = 123; } print_r($a); // $a = 123;
for ($i = 0; $i < 10; $i++) { for ($j = 0; $j < 10; $j++) { $k = 777; } } var_dump($j);//输出10var_dump($k);//输出777
$arr = [1, 2, 4];foreach ($arr as &$val) { $val *= 2; }$val = [];//重新赋值$val[0]=9;$val[1]=10; var_dump($arr,$val); 输出:array(3) { [0]=> int(2) [1]=> int(4) [2]=> &array(2) { [0]=> int(9) [1]=> int(10) } }array(2) { [0]=> int(9) [1]=> int(10) }
由于$arr as &$val
rrreee{}ブロックレベルのスコープ: php では、内部値は {} の外側で取得できます。 PHP には関数スコープがありますが、ブロックスコープはありません。 rrreeerrreeerrreee
$arr as &$val
なので、3 番目の要素 val までループします。空の配列に再割り当てされますが、その後の変更は引き続き影響を受けます val は参照であり、unset($val) が追加されない限り、その後の変更は影響を受けます。 🎜PHP 関数のスコープはブロックレベルのスコープですか?
以上がPHP のブロックレベルのスコープの詳細な説明{}の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。