gpt4 book ai didi

php - 在 isset() 和 empty() 函数中通过引用传递

转载 作者:行者123 更新时间:2023-12-04 15:52:25 24 4
gpt4 key购买 nike

基本上我想避免做这样的事情:

if((isset($var_1) && !empty($var_1)) || (isset($var_2) && !empty($var_2)) ...) { ....

所以我创建了一个函数来尝试解决它:

function set($item) {
return (isset($item) && !empty($item));
}

当传入未设置的变量时,例如:

$args = ['derp'];
if(set($args[0]) || $args[1]) {....

我收到一个抛出的通知,指出 "Offset 1 未设置,但是当我更改函数以通过引用注释 $item 时,它会删除 PHP注意:

function set(&$item) {
return (isset($item) && !empty($item));
}

Here is a demo

我的问题是 - 这是如何运作的?是因为它引用了原始的 $args 数组吗?我要疯了吗?

最佳答案

当一个函数接受一个引用参数时,关于它未定义的警告在调用时被禁用。这是因为该函数可能用于分配变量,因此传递 undefined variable 或不存在的索引不是错误。例如,假设你有一个像这样的函数:

function setTo3 (&$arg) {
$arg = 3;
}

setTo3($array[1]);

没有理由警告 $array[1] 未定义,因为 setTo3() 从不使用参数的值。

关于php - 在 isset() 和 empty() 函数中通过引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31444369/

24 4 0
文章推荐: Jenkins 2 多分支管道 - 如何使用角色策略插件限制分支的可见性/执行?
文章推荐: 可以扩展自身的 Scala 集合类?摘要序列困惑
文章推荐: 如果 中有多个
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com