用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3387|回复: 3
收起左侧

求助,释疑CI中的一段代码 [已解决]

[复制链接]
发表于 2008-8-12 23:18:23 | 显示全部楼层 |阅读模式
:) 有段代码不明白,大家帮我看一下吧
db_driver.php中 1027行:
function call_function($function) { ... }

函数内未尾有段语句:
PHP复制代码
$args = (func_num_args() > 1) ? array_splice(func_get_args(), 1) : null;
//call_function的参数数量肯定不小于1,既然如此,为什么要进行一次三元运算呢?直接$args=null不是更简洁?
return call_user_func_array($function, $args);
复制代码

肯定是我水平有问题了,希望达人指点一二.:) 谢谢

[ 本帖最后由 云中月 于 2008-8-12 23:44 编辑 ]
发表于 2008-8-12 23:20:01 | 显示全部楼层
?前面的为true,返回第一个值吧?
 楼主| 发表于 2008-8-12 23:23:12 | 显示全部楼层
我的理解也是这样.
可是第一个值就是$function,似乎没有必要吧
 楼主| 发表于 2008-8-12 23:43:04 | 显示全部楼层
  PHP手册错了.

手册上是这样的:
PHP复制代码
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
// $input is now array("red", "green")
复制代码


实际上$input为:Array ( [0] => blue [1] => yellow )

所以不难理解上述问题.

本版积分规则