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

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

4

5 回答 5

2

只要您可以保证每个函数总是返回所需的类型,就可以了。例如,如果一个函数可能返回一个 FALSE 值,它可能会被强制转换为一个意外的值。

提供的示例有效,因为两者explode(如调用)并且array_reverse都将始终返回一个数组。

一个反例:

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

因为mysqli_connect可能会返回一个资源,或者FALSE它不应该像这样被链接。应始终检查返回值的正确性。

于 2012-08-24T20:34:19.530 回答
2

这样做是完全有效的,但要保持可读性。如果您嵌套 15 个函数调用或嵌套几个函数调用,每个函数调用具有多个参数,您将获得非常不愉快的调试体验。

于 2012-08-24T20:27:09.437 回答
1

不,这样做是完全有效的

于 2012-08-24T20:23:04.383 回答
1

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

于 2012-08-24T20:27:48.257 回答
0

人们一直在嵌套这样的函数。函数旨在以这种方式使用。由于函数可以返回一个值,因此将一个变量分配给一个函数,将该函数的值放入 PHP 变量中是有意义的。

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

于 2012-08-24T20:30:01.220 回答