需要一点关于这个简单PHP代码的解释吗

需要一点关于这个简单PHP代码的解释吗,php,Php,我有一个大的Php代码,我理解所有的代码,除了这一部分 Function emptyFields($ar) { If(!is_array($ar)) { print "The argument must be an array"; return false; } foreach($ar as $key => $value) { If(empty($value) { print ucwords($key) . " must not be em

我有一个大的Php代码,我理解所有的代码,除了这一部分

Function emptyFields($ar) {
 If(!is_array($ar)) {
     print "The argument must be an array";
      return false;
  }
 foreach($ar as $key => $value) {
   If(empty($value) {
       print ucwords($key) . " must not be empty";
     return false;
   }
 }
     return true;
}

 if(!emptyFields($_POST) {
 exit();
}
我知道这是一个非常简单的代码。我在某种程度上理解这一点。我只需要详细解释一下:

如果(!emptyFields($\u POST)){ 退出(); }

谢谢你抽出时间。对不起,我犯了错误

if(!emptyFields($_POST) {
    exit();
}
首先,这实际上是错误的。应该是

if(!emptyFields($_POST)) {
    exit();
}
函数实际做的是接受一个参数。首先检查该参数是否为数组,如果不是,则返回false

然后if遍历数组的每个元素,检查它是否为空,如果为空,则再次返回false!注意,在php中,
empty()
将返回true到
int 0

代码的最后一部分向函数发送全局数组$\u POST,如果返回false,则停止执行。我猜这是某种检查,看看用户是否向服务器发送了一些空字段

编辑:


运算符与
==false
相同。因此,如果
emptyFields
函数返回false,将执行
exit()
函数

我理解这段代码的作用。黄色部分是什么意思?我的意思是,如果没有清空字段exit();这是否意味着如果函数不执行,就退出?我也解释过。@user5237857这并不意味着函数不执行。如果您说If(someFunction()){//something},那么您的意思是,当someFunction()运行时,如果该函数返回的值计算为true(可以是正数、布尔值true或非空字符串),那么//something部分将运行。感叹号与此相反,因此只有当函数返回假值(0、布尔值假或空字符串)时,感叹号才会运行。因此,在您的例子中,如果函数emptyFields($\u POST)返回false(前两个返回语句之一),则将运行exit()。@user5237857当且仅当括号中的所有语句计算为true时,if()语句将执行花括号中的代码。emptyFields()只能返回true或false。然后,根据返回值,代码可能会退出()。如果返回false,If语句将是:
If(!false)
。因为
!false===true
,这与说if(true)相同,因此exit()将运行。如果emptyFields()返回true,If语句将是:
If(!true)
。因为
!true===false
,这与说如果(false),那么将无法到达exit()。@imkingdavi和vasil shadix bros请您投票表决我的问题。有人投了反对票。Idk为什么?我问过什么不允许的问题吗?这是我的代码网站的一个帮助。您指出的这行代码使用当前请求的POST变量调用emptyFields函数。如果调用返回false,则php脚本的执行将暂停。