2012-05-01 23 views
1

このPHPのIF文は、常に「偽」になり、その理由がわかりません。どんな助けでも大歓迎です。私は0と$ jとして渡される$シンプルなPHPのIF文が正しく評価されない

は、(これらの数字は、POST中に確認された)

$i = $_POST['entry']; 
$j = $_POST['j']; 

function tabs() { 
    if ($i < $j) 
    echo 'i is less than j'; 
    else 
    echo 'false'; 
}; 

答えて

6

$i$jvisible scopetabs()の範囲内ではありません4として渡されます。

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

EDIT
また、あなたは直接tabs()関数内からスーパーグローバル$_POSTアレイにアクセスすることができ、またはそれぞれ$_GLOBALS['i']$_GLOBALS['j']、。

+0

ありがとう、これはそれを得ました。私は最初の方法を使用し、それが問題の世話をした。 –

関連する問題