PHP If 语句范围内的声明符
PHP Declarator In If-Statement Scope
这是非常基础的。
假设您在 if 语句
中定义了一个变量
if($stmt = $db->prepare($sql)) {
// do stuff
}
我可以在 if 语句下面访问 $stmt 吗?
还是 $stmt 需要定义在 if 上面?
PHP 没有块级作用域,只有函数级作用域。 $stmt
将在该 if 语句下方的任何位置可用(在 if
之内和之外)。
但是请记住,如果您在 if
块中定义新变量,则只有当 if
的计算结果为 true
时才会存在。
例如:
<?php
$var1 = true;
if ($var2 = false) {
$var3 = true; // this does not get executed
} else {
$var4 = 5;
}
var_dump($var1); // true
var_dump($var2); // false
var_dump($var3); // ERROR - undefined variable $var3
var_dump($var4); // 5
相当基本的测试:
if ($stmt = 5) {
var_dump($stmt);
}
var_dump($stmt);
输出:
int(5)
int(5)
是的,你可以"access $stmt below the if statement"。
这是非常基础的。 假设您在 if 语句
中定义了一个变量if($stmt = $db->prepare($sql)) {
// do stuff
}
我可以在 if 语句下面访问 $stmt 吗? 还是 $stmt 需要定义在 if 上面?
PHP 没有块级作用域,只有函数级作用域。 $stmt
将在该 if 语句下方的任何位置可用(在 if
之内和之外)。
但是请记住,如果您在 if
块中定义新变量,则只有当 if
的计算结果为 true
时才会存在。
例如:
<?php
$var1 = true;
if ($var2 = false) {
$var3 = true; // this does not get executed
} else {
$var4 = 5;
}
var_dump($var1); // true
var_dump($var2); // false
var_dump($var3); // ERROR - undefined variable $var3
var_dump($var4); // 5
相当基本的测试:
if ($stmt = 5) {
var_dump($stmt);
}
var_dump($stmt);
输出:
int(5)
int(5)
是的,你可以"access $stmt below the if statement"。