加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 函数调用中的变量赋值

发布时间:2020-12-13 18:02:01 所属栏目:PHP教程 来源:网络整理
导读:我继承了一个php代码库,它包含函数调用中的一些变量赋值: ?phpfunction some_func($foo,$state) { ....}some_func("random stuff",$state = true);...some_func("other stuff",$state = false);...? 我做了一些研究和一些测试,但我不知道这个代码在PHP中的
我继承了一个php代码库,它包含函数调用中的一些变量赋值:
<?php
function some_func($foo,$state) {
  ....
}

some_func("random stuff",$state = true);
...
some_func("other stuff",$state = false);
...
?>

我做了一些研究和一些测试,但我不知道这个代码在PHP中的定义行为是什么.

some_func()的第二个参数的值是如何计算的? 4state变量的内容(第一次调用时为true,第二次为false)?或者它是赋值的结果(即为变量$state分配true / false是否成功,所以some_func收到了真的?

全局范围内$state变量的值是多少?赋值的结果,即第一次调用后为true,第二次调用后为false?

我也不得不使用具有与此类似的函数调用的代码库.幸运的是,我可以访问编写代码的开发人员.这是我学到的.

场景1:

只是一种记录代码的方法.您知道要传递给函数的变量名称.

场景2:

这是一个链接:http://www.php.net/manual/en/language.references.pass.php
如果你看到,他们会专门提出你的情况:

foo($a = 5); // Expression,not variable

一个’虚拟’pass-by-ref.根据您的PHP版本,它可能会发出警告.我得到了这个:严格的标准:只有变量应该通过引用传递给…

现在让我详细介绍这种情况下发生的情况.

危险的是你提供的例子不会显示“陷阱!”行为.在这种情况下,您在函数外部回显的$arg2将始终是函数调用中的表达式设置它.此外,被调用的函数也将被发送该值的“副本”,并使用它.我说“复制”是因为即使该函数需要pass-by-ref,它实际上也会获得一个副本,类似于普通函数参数.

如果修改函数内部的$arg2,它将不会修改函数外部的$arg2,正如您所期望的那样,是一个pass-by-ref函数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读