php başlangıç ​​değerinin olmadan alanı ilan?

3 Cevap php

Ben bir başlangıç ​​değeri vermek istemiyorum. Ben set yöntemini kullanarak daha sonra bu ayarlamak istiyorum

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

Nasıl hata almadan beyan herhangi bir fikir?

3 Cevap

Sizin soru PHP işaretlenmiş ama bildiğim herhangi bir PHP gibi görünmüyor. Bu doğru PHP:

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

Sen $set olarak bu örnekte ama bu sadece 0 standart varsayılan değerini alır demektir, false, array() için bir başlangıç ​​değerini belirtmek gerekmez , vb ben size ulaşmak için çalışıyoruz ne emin değilim nasıl kullanıldıklarını bağlı.

Genellikle açık olmak daha iyi.

Çok daha PHP:

 class Duck {
      public $id;
 }

 $d = new Duck;
 $d->id = 5;

Bir yöntem Typ kontrol edilebilir;

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();
      }
   }
}