이 문서는 주로 {} 블록 수준 범위 및 && 또는 || 우선순위 문제를 공유합니다. 모든 사람에게 도움이 되기를 바랍니다.
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
이므로 세 번째 요소인 val로 반복합니다. 빈 배열에 재할당되더라도 후속 수정은 여전히 영향을 미칩니다. val은 참조이며 unset($val)을 추가하지 않는 한 후속 수정은 영향을 받습니다. 🎜PHP 함수 범위인가요, 아니면 블록 수준 범위인가요?
위 내용은 PHP{} 블록 수준 범위에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!