繁体   English   中英

If声明范围内的PHP声明程序

[英]PHP Declarator In If-Statement Scope

这是很基本的。 假设您在if语句中定义了一个变量

if($stmt = $db->prepare($sql)) {
   // do stuff
}

我可以在if语句下面访问$ stmt吗? 还是需要在if上方定义$ stmt?

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)

是的,您可以“在if语句下面访问$ stmt”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM