如果我在foreach循环中声明一个变量,例如:
foreach($myArray as $myData) { $myVariable = 'x'; }
PHP是否销毁它,并在每次迭代时重新创建它?换句话说,明智的做法是做得更聪明:
$myVariable; foreach($myArray as $myData) { $myVariable = 'x'; }
提前感谢您的见解.
在你的第一个例子中:
foreach($myArray as $myData) { $myVariable = 'x'; }
$myVariable是在第一次迭代中创建的,而不是在每次进一步的迭代中被覆盖.在离开您的脚本,功能,方法,…的范围之前,它不会随时被销毁
在你的第二个例子中:
$myVariable; foreach($myArray as $myData) { $myVariable = 'x'; }
$myVariable在任何迭代之前创建,并设置为null.在每次迭代期间,如果将被覆盖.在离开您的脚本,它不会随时被销毁
更新
我错过了主要的区别.如果$myArray为空(count($myArray)=== 0)$myVariable将不会在您的第一个示例中创建,但在第二个示例中,将会使用值为null.