意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

PHP5和7实现获取函数差别在哪

来源:恒创科技 编辑:恒创科技编辑部
2024-01-06 11:20:59
在实际应用中,我们有时候会遇到“PHP5和7实现获取函数差别在哪”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“PHP5和7实现获取函数差别在哪”文章能帮助大家解决问题。




PHP5和7实现获取函数差别在哪

PHP5和PHP7取数组元素作动态函数名的差异

在 PHP5 和 PHP7 中通过变量获取函数/方法名执行函数/方法时,可能会由于版本之间不通的解释策略导致相同的代码无法运行。

示例

$a = ['add', 'sub'];
class Test
{
  public function add()
  {
    echo 1 + 2;
  }
}
$t = new Test();
$t->$a[0]();

上例在 PHP5.6 下可以正常运行,但在 PHP7 下会抛出 Fatal error: Function name must be a string。这是因为 PHP5 下执行t->t−>a0时,会先执行$a[0],获取元素值,然后执行对象的具体方法。

在 PHP7 下,则会先执行t->t−>a,导致抛出错误,中断执行。如需要在 PHP7 下正常执行,需要修改为t->{a[0]}()。

具体差异可参考:


感谢各位的阅读,以上就是“PHP5和7实现获取函数差别在哪”的内容了,经过本文的学习后,相信大家对PHP5和7实现获取函数差别在哪都有更深刻的体会了吧。这里是恒创科技,小编将为大家推送更多相关知识点的文章,欢迎关注!
上一篇: PHP7开发使用有哪些方面要注意 下一篇: PHP7中错误和异常如何理解,有哪些要点