【发布时间】:2013-12-16 05:42:50
【问题描述】:
我有点困惑,希望你们能提供帮助。我正在写一些简单的东西,它从发布的名称字段中获取一个值并返回它,事先检查它是一个字符串(正确)还是一个整数(在这种情况下它会说'a name is not a number') .
<?php
$number = array("1","2","3","4","5","6","7","8","9","0");
if(!isset($_POST['submit'])){
?>
<p>Enter your name</p>
<form method="post" action="action4.php">
<input type="text" name="name">
<input type="submit" name="submit">
</form>
<?php
}else{
$name = $_POST['name'];
foreach($number as $v){
$int = (int)$v;
}
if($name == $int){
print "This is a number and not a name.";
}else{
print $name;
}
}
?>
鉴于输入到名称字段中的每个数字都被视为字符串,我循环遍历数组并将每个数字转换为整数。然而,当在名称字段中输入一个整数时,我得到的是 $name,而不是“这是一个数字而不是一个名字”。相反,如果我输入一个字符串,我会得到“这是一个数字而不是一个名字”。
var_dumping if 语句中的 name 和 int 都按预期返回:$name 作为字符串,$int 作为整数。那么为什么他们比较真实呢?
【问题讨论】:
标签: php string integer comparison operator-keyword