<?php
$a = $_POST['a'];
$b = $_POST['b'];
$c;
if(is_numeric($a) && is_numeric($b)){
echo "string";
exit();
}
if(!is_numeric($a) && !is_numeric($b)) {
echo "string";
exit();
}
if(isset($a)){
$resultat=$b*2.54;
echo "string " . $c . " string";
exit();
}
if(isset($b)){
$resultat=$a/2.54;
echo "string " . $c . " string";
exit();
}
?>
我首先检查另一个字段1&amp; 2持有数字值,然后检查两个是否保持值。 这很好,但是当我进入第二部分时,它永远不会超过第一部分“if”它总是看到“a $”作为设置...
我必须使用案例吗?还是?
答案 0 :(得分:0)
检查if(isset($a))
时,您期待一个空字符串。问题是你正在检查它是否已设置,而不是它是否为空。实例化变量时,在第一行中设置变量。表单将空字符串传递给$ _POST,因此您应该检查$ a不是空字符串。
if ($a !== '') {
$resultat=$b*2.54;
echo "string " . $c . " string";
exit();
}
答案 1 :(得分:0)
嗯,技术上总是会设置$ a,因为它设置为$ _POST ['a']。因此,即使$ _POST ['a']为空,它也会每次“设置”。试试这个:
if (!empty($a))
这将检查$ a是否为空。
答案 2 :(得分:0)
变量$ a将具有$ _POST ['a']的值,当此值为空时,PHP将抛出通知错误,因此您需要做的第一件事就是使用isset。
$a = isset($_POST['a']) ? $_POST['a'] : null //Set $a to $_POST['a'] when NOT empty
如果未设置变量,即使值为null,PHP中的isset函数也只会返回true。
第二件事是检查值是否为空,你可以做的最好的事情是使用松散的比较:
if ($a == null) {
echo 'A is emty..';
}
这样,值:“”,0,null和false将被视为“空”。
如果您想知道该值是否实际为null,则使用三元组“=”进行严格比较:
if ($a === null) {
echo 'A is empty';
}