объявить поле без начального значения в php? - PullRequest
1 голос
/ 04 апреля 2010

Я не хочу давать начальное значение. Я хочу установить их позже, используя метод set

class Duck {
    var int id;
    var set = Array();
}

Есть идеи, как объявить без ошибок?

Ответы [ 4 ]

2 голосов
/ 04 апреля 2010

Ваш вопрос помечен как PHP, но он не похож ни на один из известных мне PHP. Это правильный PHP:

class Duck {
  private $id;
  private $set = array();
}

Вам не нужно указывать начальное значение для $set, как в этом примере, но это просто означает, что оно получает стандартное значение по умолчанию 0, false, array() и т. Д. В зависимости от того, как оно используется, поэтому я не уверен, чего вы пытаетесь достичь.

Как правило, вам лучше быть откровенным.

0 голосов
/ 04 апреля 2010

Метод может быть проверкой типа;

private $props = array();
static $types = array ("id" => "is_integer","name" => "is_string");

public function __set($name,$value) 
{
   if(array_key_exists($name, self::$types)) 
   {
      if(call_user_func(self::$types[$name],$value)) 
      {
        $this->props[$name] = $value;
      }
      else 
      {
        print "Type assignment error\n";
        debug_print_backtrace();
      }
   }
}
0 голосов
/ 04 апреля 2010

Гораздо больше PHP это:

 class Duck {
      public $id;
 }

 $d = new Duck;
 $d->id = 5;
0 голосов
/ 04 апреля 2010
class Duck { var $int, $set = array(); }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...