首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么函数empty似乎会清空结果?

为什么函数empty似乎会清空结果?
EN

Stack Overflow用户
提问于 2018-06-10 03:06:43
回答 1查看 31关注 0票数 0

我在PHP中得到了一个奇怪的结果。

代码语言:javascript
复制
if( $mandatory_param === "name" ){
    var_dump( $data );
    exit();
}

//output : array(6) { ["name"]=> string(4) "plan" ["class"]=> string(33) "Path\Plan" ["dbtable"]=> string(5) "plans" ["getter"]=> string(7) "plan_id" ["editable"]=> string(4) "true" ["slug"]=> string(2) "pl" } 

但是,当我尝试使用empty函数测试数组时,即使第一个输出显示以下内容,结果也会发生变化:["name"]=> string(4) "plan"

代码语言:javascript
复制
if( $mandatory_param === "name" && empty( $data[ $mandatory_param ] ) ){
  var_dump( $data );
  exit();
}

//Output : array(0) { }

为什么?empty()函数似乎清空了我的数组,而不是检查它是否为空。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 03:21:18

如果没有完整的代码,就不可能肯定地说,但可以做出一个有根据的猜测:

如果没有empty()检查,则在第一次调用这段代码/函数时触发exit(),并设置$data

当您添加empty时,在if语句中结束的前一个调用不再这样做(因为为该数组设置了name ),因此不会产生任何输出或对exit的调用(因此代码继续运行)。

然后,代码一直运行,直到对未设置$data['name']的数组执行测试,执行var_dump (对现在为空数组的数组)并退出。

调用empty不会删除任何内容,只是在应用程序运行后转储一组不同的数据。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50777592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档