PHP 函数参数的求值顺序是否保证始终相同?谢谢。 最佳答案 通常,是的。作为 the manual states : 但是有两种边缘情况根本不评估参数:未定义的函数$calls = 0;register_shutdown_function(function () use (&$calls) { echo $calls;});func_does_not_exist($calls++);这个 outputs 0 在所有版本的 PHP 上。缺少构造函数,未定义函数的特例class Foo {}$bar = 0;$foo = new Foo($bar++);echo $bar;PHP outputs 0 和 PHP >= 7.1 上的 1。它被称为“Rasmus 优化”,它只发生在构造没有正式构造函数的类的情况下。另见 #67829 、 #54162 和 #54170 。总之,手册是正确的。对于定义的函数,参数从左到右求值,然后传递给函数。未定义的函数,对于不存在的构造函数是一种特殊情况,不符合函数的条件,因此调用之前的评估本身是未定义的。关于php - PHP 中函数参数的求值顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39273317/