我在1周前开始学习PHP,我正在进行一些表格测试,以便对语言产生更多的担忧,我会陷入问题小问题中为你们所做的....
我使用PHP manuale中的in_array函数来检查登录时的名字数组
该功能无法检查数组告诉我添加!in_array
!!!
正常in_array
无法检查姓名......
所以我明确地使用了操作员“!”在函数前面,为什么它与该运算符一起工作而不是没有呢?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Forum</title>
<meta name="Nic" content="" />
<link rel="stylesheet" type="text/css" href="style.css"> </head>
<body>
<?php
if(isset($_POST['submit'])){
$names = array("Nicolaus", "Solo", "Yiu", "Yang", "Darius");
$minimum = 5;
$maximum = 10;
$username = $_POST['username'];
echo '<br>';
$password = $_POST['passwoard'];
if(strlen($username) < $minimum){
echo 'Username needs to be longer then 5 carcaters !';
}
if(strlen($username) > $maximum){
echo "Username can't be longer then 10 carcaters";
}
if(!in_array($username, $names)){
echo "You are not alowed , not in database !";
} else {
echo 'Welcome';
}
echo '<br>';
echo 'Your Username is : ' . "<b>" . $username . '</b>';
echo ' Your Password is : ' . "<b>" . $password . '</b>';
}
?>
<form action="my_from.php" method="post">
<input type="text" name="username" placeholder="username">
<input type="password" name="passwoard" placeholder="password">
<input type="submit" name="submit"> </form>
</body>
泰
答案 0 :(得分:3)
!表示NOT,它是一个操作员,当你想检查某些东西是否错误时进行比较。
$raining = false;
if (!$raining){
echo "its not raining";
}
现在您发布了代码:
if(!in_array($username, $names)){
echo "You are not allowed , not in database !";
} else {
echo 'Welcome';
}
in_array
是一个函数,用于检查某个值是否在数组中。您正在测试$username
是否在$names
数组中。
如果$username
不在数组中,则进行条件检查,如果是,则表示不允许$username
,因为它不会成为允许的$names
的一部分。
您的ELSE
子句标识它在数组中,然后用户就可以登录。
你可以颠倒你的逻辑:
if(in_array($username, $names)){
echo 'Welcome';
} else {
echo "You are not allowed , not in database !";
}
它也会起作用。
答案 1 :(得分:1)
!
符号用于否定函数的逻辑。
您真正想要做的是,如果$username
的用户姓名不,则您希望拒绝 $names
数组。您有一个函数来检查数组中是否存在元素。因此,向其添加!
运算符会否定逻辑。
if (!in_array($username, $names))
这意味着如果数组$username
中存在$names
NOT 。
使用!
类似于使用条件== FALSE
进行检查。但我们不能直接在该函数上使用该逻辑,因此我们选择!
运算符。
没有!
的示例的另一种选择是,
if (in_array($username, $names)) {
echo "Welcome";
} else {
echo "You are not alowed , not in database !";
}
希望这有帮助! :)