Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 否则,如果返回true,则返回false_Php_Html_If Statement - Fatal编程技术网

Php 否则,如果返回true,则返回false

Php 否则,如果返回true,则返回false,php,html,if-statement,Php,Html,If Statement,我试图弄明白为什么我的elseif语句返回else if$name

我试图弄明白为什么我的elseif语句返回else if$name<5 true即使我输入的字段大于5,如果所有字段都为false,它也应该回显“Great”!我将$name和$score变量设置为“”,因为我在html值中使用了它,我不希望出现未定义的错误,谢谢

<!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之前有一个空格作为整数发布,我只是在转换数值。