【问题标题】:Allow Pass By Reference at the Script Level允许在脚本级别通过引用传递
【发布时间】:2013-01-14 16:59:20
【问题描述】:

我试图让一些都包含在一个脚本中的函数通过引用传递。我不想在全局范围内打开它,但是当我在要通过引用传递的脚本中添加以下指令时,我仍然看到 PHP 警告:

Deprecated: Call-time pass-by-reference has been deprecated

我希望在覆盖 PHP INI 文件后看到这些警告消失。

 ini_set("allow_call_time_pass_reference", "true");

我该怎么做,或者那是正确的,并且警告在那里,因为 PHP 解释器没有解析我的本地 ini_set() 指令,只读取 php.ini?

【问题讨论】:

  • 警告的存在是有原因的。依赖已弃用的功能可能不是一个好主意。
  • 您收到了哪些警告? php 5.x 中已弃用此设置
  • 更重要的是,没有充分的理由使用“调用时传递引用”。它颠覆了您正在调用的函数的作者的意图。如果你有这个,你的代码几乎肯定写错了。

标签: pass-by-reference php


【解决方案1】:
  1. http://php.net/manual/en/ini.core.php : allow_call_time_pass_reference => PHP_INI_PERDIR

  2. http://php.net/manual/en/configuration.changes.modes.php : PHP_INI_PERDIR => 可以在 php.ini、.htaccess、httpd.conf 或 .user.ini 中设置条目(自 PHP 5.3 起)

回答:不能用ini_set设置。

如果您将使用 php 5.4.0,此配置选项已被删除。

【讨论】:

  • PHP 5.3,我在要通过引用传递的脚本中使用 ini_set()。查看我的问题
  • 查看我的答案,阅读链接参考。这里没有什么要补充的了。
  • 很公平。尽管我的确切问题没有得到解决,但由于该主题的完整性,我选择了您的答案。
  • 当然解决了。这是在运行时无法更改的全局设置。而在当前的 php 版本中,这已被完全删除,因此与其试图为它寻找解决方案,不如重新考虑您的应用程序,而不是依赖此设置。
猜你喜欢
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-15
相关资源
最近更新 更多