调用函数作为参数,是这种不好的做法


calling function as argument, is this bad practice?

$myVar=myFunction(array_reverse(explode('.', $_SERVER['SERVER_NAME'])));

像这样的嵌套函数有什么问题吗?

只要你能保证每个函数总是返回所需的类型,这就可以了。例如,如果函数可能返回 FALSE 值,则可能会将其转换为意外值。

提供的示例之所以有效,是因为explode(如调用(和array_reverse都将始终返回一个数组。

一个反例:

mysqli_query(mysqli_connect(...), 'INSERT INTO tbl VALUES ....');

由于mysqli_connect可能会返回资源或FALSE因此不应像这样链接。应始终检查返回值的正确性。

这样做是完全有效的,但要保持可读性。如果嵌套 15 个函数调用或嵌套少量函数调用,每个函数调用具有多个参数,则调试体验将非常无趣。

不,这样做是有效的

这可能是一个不好的做法,因为它使代码更难理解,因此更难维护。
克服此问题的一个好做法是(大量(注释代码。

人们总是这样嵌套函数。 函数就是要以这种方式使用的。 由于函数可以返回值,因此将变量分配给函数是有意义的,以便将该函数的值获取到 PHP 变量中。

感谢上帝的函数返回值,否则,以另一种方式考虑它会一团糟......