0
 <?php
    class ExtendedArrayObject extends ArrayObject {
        private $_array;
        public function __construct()
        {
            if (is_array(func_get_arg(0)))
                $this->_array = func_get_arg(0);
            else
                $this->_array = func_get_args();
            parent::__construct($this->_array);
        }
    }
    $newArray = new ExtendedArrayObject(array(1,2,3,4,5,6));
   ...
    ?>

上面的代码取自一本书。

问题:这条线的用途是什么:else $this->_array = func_get_args();?为什么我们需要在这里设置一个if...else...

4

3 回答 3

0

func_get_args — 返回一个包含函数参数列表的数组。

如果是这样,因为,

因为如果函数中的参数大于 1,它将是一个数组,因此它将执行 if 条件,否则它会检查 else 语句中的代码。

于 2013-04-22T08:09:02.857 回答
0

func_get_args包含传递给函数的参数数组。

通过检查它,其中的第一项本身就是一个数组,它表示使用该数组。

如果不是,则使用完整的参数列表。

何时运行的示例if

$newArray = new ExtendedArrayObject(array(1,2,3,4,5,6));

else何时运行的示例

$newArray = new ExtendedArrayObject(1,2,3,4,5,6);
于 2013-04-22T08:09:12.723 回答
0

条件是用来区分的不同结果func_get_arg()。如果这是一个数组,它会得到第一个结果,如果不是(否则)它会得到完整的结果。

func_get_args()从用户定义函数的参数列表中获取指定的参数。

于 2013-04-22T08:09:15.697 回答