<?php
class foo {
private $a = '01', $b = '02', $c = '03';
function __construct($a) {
$this->a = $a;
$nArgs = func_num_args();
if ($nArgs > 1) {
$cVars = get_class_vars(__CLASS__); $cVars = array_keys($cVars);
for ($i = 1; $i < $nArgs; ++$i)
$this->$cVars[$i] = func_get_arg($i);
echo $this->a . ', ' . $this->b . ', ' . $this->c;
}
}
}
new foo('alpha', 12345, 'charlie');
?>为什么执行蓝色部分那段是从1开始执行?不是应该从0开始执行的吗?至于arg[0]是不是在红色部分那段已经执行了?
如果是的话是不是表示__construct($a)中传递的$a是arg[0]?
class foo {
private $a = '01', $b = '02', $c = '03';
function __construct($a) {
$this->a = $a;
$nArgs = func_num_args();
if ($nArgs > 1) {
$cVars = get_class_vars(__CLASS__); $cVars = array_keys($cVars);
for ($i = 1; $i < $nArgs; ++$i)
$this->$cVars[$i] = func_get_arg($i);
echo $this->a . ', ' . $this->b . ', ' . $this->c;
}
}
}
new foo('alpha', 12345, 'charlie');
?>为什么执行蓝色部分那段是从1开始执行?不是应该从0开始执行的吗?至于arg[0]是不是在红色部分那段已经执行了?
如果是的话是不是表示__construct($a)中传递的$a是arg[0]?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货