2008-10-20 17 views
5

Ben rastlamak bazı PHP sözdizimi tarafından biraz kafam karıştı.

$k = $this->_tbl_key; 

if($this->$k) 
{ 
    $ret = $this->_db->updateObject($this->_tbl, $this, $this->_tbl_key, $updateNulls); 
} 
else 
{ 
    $ret = $this->_db->insertObject($this->_tbl, $this, $this->_tbl_key); 
} 

sorum temelde $this->$k ne demek olduğunu: İşte bir örnek? $this->_tbl_key numaralı telefonun ismiyle başlayan üye değişkeni anlamına gelebileceğini düşündüm, ama bu nasıl olurdu? Çalışma zamanında üye değişkenleri bir sınıfa eklemek mümkün mü?

cevap

19

"k" değeri ne olursa olsun yukarı bakar ve değişken ad olarak davranır. Bu iki örnek aynıdır:

echo ($obj->myvar); 

#### 

$k = "myvar"; 
echo ($obj->$k); 
+0

Tamam, başlangıçta düşündüğüm şey buydu - o değişkenin nereden geldiğini bulmalıyım o zaman. –

5

Bunun variable variables bir olgu olduğuna inanıyoruz.

+0

Ancak, çok değil. John Millikin'in cevabı doğru. –

+3

@Garrett: bunun dışında mı? –

+0

John'un cevabı daha eksiksiz, ancak Paolo doğru. Bu değişken olarak adlandırılan bir değişkendir. Daha spesifik olarak OOP kullanımı açısından düşünmek istiyorsanız, ona bir değişken özelliği de (Paolo'nun bağlantısında tarif edilmiştir) diyebilirsiniz. –

İlgili konular