Maison > Article > développement back-end > Explication détaillée de la portée au niveau du bloc PHP{}
Cet article partage principalement avec vous {} la portée au niveau du bloc et et && ou || les problèmes prioritaires, j'espère qu'il pourra aider tout le monde.
et ou a une priorité inférieure à && || et inférieure à =.
Donc $b1 = $bA and $bB
fonctionne en premier sur $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
En php, la valeur interne peut être obtenue en dehors de {}. PHP a une portée de fonction, mais pas une portée de bloc.
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) }
À cause de $arr as &$val
, boucle vers le troisième élément,
val. Bien que réaffectées à un tableau vide, les modifications ultérieures affecteront toujours
val est une référence, et les modifications ultérieures l'affecteront, à moins que. unset ($ val) est ajouté.
Recommandations associées :
Portée et portée au niveau du bloc en Javascript
La portée de la fonction PHP est-elle ou la portée au niveau du bloc ? >
Fonction anonyme JavaScript imitant les compétences scope_javascript au niveau du bloc
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!