一个与php中的ArrayObject相关的问题

时间:2013-04-22 08:03:40

标签: php

 <?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...

3 个答案:

答案 0 :(得分:0)

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

这是if else,因为,

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

答案 1 :(得分: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);

答案 2 :(得分:0)

有条件的是区分func_get_arg()的不同结果。如果这是一个数组,它将获得第一个结果,如果不是(else),则获得完整的结果。

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