$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 变量中是有意义的。
感谢上帝返回值的函数,否则,以另一种方式思考它会一团糟......