今天小编给大家分享的是PHP5和PHP7取数组元素作动态函数名有什么差异,相信很多人都不太了解,为了让大家更加了解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->$a<a href="">0</a>时,会先执行$a[0],获取元素值,然后执行对象的具体方法。
在 PHP7 下,则会先执行$t->$a,导致抛出错误,中断执行。如需要在 PHP7 下正常执行,需要修改为$t->{$a[0]}()。
具体差异可参考:
关于PHP5和PHP7取数组元素作动态函数名有什么差异就分享到这里了,当然并不止以上和大家分析的办法,不过小编可以保证其准确性是绝对没问题的。希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。