この 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';
};
この 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';
};
$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();
編集
または、関数内からスーパーグローバル$_POST
配列にtabs()
直接アクセスすることも、それぞれ、$_GLOBALS['i']
およびにアクセスすることもできます$_GLOBALS['j']
。