2013-04-22 2 views
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)); 
    ... 
    ?> 

Выше код взят из книги.один вопрос, связанный с ArrayObject in php

Вопрос: Что такое использование этой строки: else $this->_array = func_get_args();? почему нам нужно настроить здесь if...else...?

+0

'func_get_arg (0)' получить первый аргумент функции –

ответ

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); 
0

func_get_args - Возвращает массив, содержащий список аргументов функции.

Здесь, если еще потому,

, потому что, если аргумент больше, чем 1 в функции будет массив, следовательно, он будет выполнение, если условие или иначе это проверить код в другое заявление.

0

Условные здесь, чтобы провести различие между разными результатами func_get_arg() , Если это массив, он получает первый результат, и если он не является (else), он получает полный результат.

func_get_args() Получает указанный аргумент из списка аргументов пользовательской функции.

Смежные вопросы