2012-05-01 55 views
1

此PHP IF语句总是导致“错误”,我找不到原因。任何帮助是极大的赞赏。简单的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'; 
}; 

回答

6

$i$j不是内tabs()visible scope

&hellip;在用户定义的函数中引入本地函数作用域。在函数内部使用的任何变量缺省地局限于本地函数作用域。

将它们作为参数,或使它们的全球(第一个是首选的方法):

参数

$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(); 

EDIT
或者,可以直接从tabs()函数中访问超全局$_POST阵列,或分别$_GLOBALS['i']$_GLOBALS['j']

+0

谢谢,这明白了。我使用了第一种方法,并处理了这个问题。 –