简单的PHP IF语句无法正确评估

时间:2012-05-01 05:12:51

标签: php

这个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';
};

1 个答案:

答案 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']