Ale*_*ier 14 php variables foreach scope loops
如果我在foreach循环中声明一个变量,例如:
foreach($myArray as $myData) {
$myVariable = 'x';
}
Run Code Online (Sandbox Code Playgroud)
PHP是否破坏它,并且在每次迭代重新创建呢?换句话说,这将是更明智的性能,明智的事情:
$myVariable;
foreach($myArray as $myData) {
$myVariable = 'x';
}
Run Code Online (Sandbox Code Playgroud)
提前感谢您的见解.
eis*_*erg 21
在你的第一个例子中:
foreach($myArray as $myData) {
$myVariable = 'x';
}
Run Code Online (Sandbox Code Playgroud)
$myVariable
在第一次迭代期间创建,而不是在每次进一步迭代时覆盖.在离开脚本,函数,方法的范围之前,它不会在任何时候被销毁......
在你的第二个例子中:
$myVariable;
foreach($myArray as $myData) {
$myVariable = 'x';
}
Run Code Online (Sandbox Code Playgroud)
$myVariable
在任何迭代之前创建并设置为null.在每次迭代期间,如果将被覆盖.在离开脚本,函数,方法的范围之前,它不会在任何时候被销毁......
我错过了提到的主要区别.如果$myArray
为空(count($myArray) === 0
)$myVariable
将不会在第一个示例中创建,但在第二个示例中,它将使用null值.