$instance = new className();
$instance['name']
Nasıl, bir örnek çalışması için?
Sınıf uygular PHP's SPL ArrayAccess daha sonra başvurmak mümkün olacak eğer sınıfı tanımlamak şekilde bağlıyor.
Ben bağlantılı öğretici Taken:
class book implements ArrayAccess {
public $title;
public $author;
public $isbn;
public function offsetExists($offset) {
return isset($this->$offset);
}
public function offsetSet($offset, $value) {
$this->$offset = $value;
}
public function offsetGet($offset) {
return $this->$offset;
}
public function offsetUnset($offset) {
unset($this->$offset);
}
}
/*** a new class instance ***/
$book = new book;
/*** set some book properties ***/
$book['title']= 'Pro PHP';
$book['author'] = 'Kevin McArthur';
$book['isbn'] = 1590598199;
print_r($book);
$instance->name
Eğer bir dizi nesneyi dönüştürmek isterseniz kontrol edebilirsiniz this.
Kamu olmadıkça sizin üye değişkenleri tanımlı nasıl bağlıdır, normalde bu gibi onları erişebilirsiniz:
$instance = new className();
$instance->name;
Ancak statik değişken olarak tanımlanmış varsa, bu gibi erişmek gerekir:
$instance = new className();
$instance::$name;
Eğer (dizi gibi) bu gibi değişkenleri almak içindir eğer:
$instance = new className();
$instance['name'] // <----------- won't be like that exactly
Eğer sınıfta bir dizi tanımlamak gerekir:
class myclass
{
public $myarray = array();
// more stuff to fill that array
}
Şimdi bu gibi erişebilirsiniz:
$instance = new className();
$instance->myarray['name'];
Ama yine de bu gibi değil:
$instance = new className();
$instance['name']
Sizin nesne uygulamak gerekir ArrayAccess. Eğer aynı zamanda mülkiyet erişim düzenleyiciler kontrol etmek için ReflectionClass kullanmak gerekir sadece ortak özelliklerini (sınıf değişkenleri) erişebilir olmak istiyorsanız.