这是我的小脚本,通过编写它我了解到我不知道 PHP 如何处理变量......
<?php
$var = 1;
echo "Variable is set to $var <br />";
if (!foo()) echo "Goodbye";
function foo()
{
echo "Function should echo value again: ";
if ($var == 1)
{
echo "\$var = 1 <br />";
return true;
}
if ($var == 2)
{
echo "\$var = 0 <br />";
return false;
}
}
?>
所以,这就是我认为这个脚本的解释方式:
该语句
if (!foo)
将运行foo()
。如果函数返回false
,它也会在最后回显“再见”。该函数
foo()
将检查是否$var == 1
或2
(对数据类型不严格)。如果为 1,它将回显“函数应再次回显值:1”,如果为 2,它将回显相同但数字为 2。
由于某种原因,内部的两个if 语句foo()
都被传递(我知道这一点,因为如果我将第一个 if 语句更改if ($var != 1)
为 ,即使我声明了 $var = 1
.
这里发生了什么事?我以为我已经把这一切都放下了,现在我觉得我只是倒退了:/