1

这个 PHP IF 语句总是导致“假”,我不知道为什么。任何帮助是极大的赞赏。

其中 $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';
};
4

1 回答 1

6

$i并且$j不在以下可见范围tabs()

… [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();

编辑
或者,您可以直接$_POSTtabs()函数内访问超全局数组,或$_GLOBALS['i']分别$_GLOBALS['j']访问。

于 2012-05-01T05:30:11.063 回答