Php 否则,如果返回true,则返回false
我试图弄明白为什么我的elseif语句返回else if$name<5 true即使我输入的字段大于5,如果所有字段都为false,它也应该回显“Great”!我将$name和$score变量设置为“”,因为我在html值中使用了它,我不希望出现未定义的错误,谢谢Php 否则,如果返回true,则返回false,php,html,if-statement,Php,Html,If Statement,我试图弄明白为什么我的elseif语句返回else if$name
<!DOCTYPE html>
<?php
$name = '' ;
$score = '' ;
$message = '';
if (isset($_POST['name'])){
$name = $_POST["name"];
$score = $_POST["score"];
if (!$name || !$score) {
$message = "Please fill in both name and score!";
} elseif ($name < 5) {
$message = "name must be at least 5 characters";
} elseif ($score < 5) {
$message = "score must be at least 5 characters";
} else {
echo 'Great';
}
}
?>
<h1>Enter Your info </h1>
<hr>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
Name: <input type="text" name="name" placeholder="Enter Name" value="<? php echo $name; ?>"> <br>
Score: <input type="text" name="score" placeholder="Enter Score" value=" <?php echo $score; ?>">
<hr>
<input type="submit" name="submit" value="add">
</form>
<p class="error">
<?php echo $message ; ?>
</p>
</body>
</html>
输入您的信息
问题在于:
$name < 5
$score < 5
$name<5
$score<5
它们都是字符串,输出将是不需要的。要检查长度,请将其更改为:
strlen($name) < 5
intval($score) < 5
strlen($name)<5
intval($score)<5
正如评论中提到的,这是一个错误:
value="<? php
value=“Visit()基本上你是在比较字符串和数字,
它应该被设置为int
$int = (is_numeric($_POST['a']) ? (int)$_POST['a'] : 0);
你的意思是strlen($name)<5
?@u_mulder x-file closed;)你认为'Fred'<5
的计算结果应该是什么?字符串小于整数?谢谢,我忘了这个了,试试输入上的pattern=“[A-Za-z]{3}”
!查找HTML输入属性并注意他关于这部分的内容`值='搜索空白?@MarkeseP查看我编辑的内容。。。您在php
@MarkeseP Score之前有一个空格作为整数发布,我只是在转换数值。