这个PHP IF语句总是导致'false',我无法弄清楚原因。非常感谢任何帮助。
其中$ i作为0传入,$ j作为4传递(这些数字在POST中验证)
$i = $_POST['entry'];
$j = $_POST['j'];
function tabs() {
if ($i < $j)
echo 'i is less than j';
else
echo 'false';
};
答案 0 :(得分:6)
$i
和$j
不在tabs()
的{{3}}内:
... [W]在用户定义的函数中引入了局部函数范围。函数内使用的任何变量默认都限制在本地函数范围内。
将它们作为参数传递或将它们设为全局(第一种是首选方式):
<强>参数强>
$i = $_POST['entry'];
$j = $_POST['j'];
function tabs($i, $j) {
if ($i < $j)
echo 'i is less than j';
else
echo 'false';
};
tabs($i, $j);
<强>全球强>
$i = $_POST['entry'];
$j = $_POST['j'];
function tabs() {
global $i, $j;
if ($i < $j)
echo 'i is less than j';
else
echo 'false';
};
tabs();
修改强>
或者,您可以直接从$_POST
函数中访问超级全局tabs()
数组,或分别访问$_GLOBALS['i']
和$_GLOBALS['j']
。