bir sınıf özelliğinin değeri bir değişken var?

3 Cevap

Dersimde ben bazı özellikleri vardır. ben bu bazı değerlerin bir başka özelliğine sahip istiyorum. ama mümkün değildi fark ettim.

kodu:

$property = "my name is: $this->name";

Bir hata oluşturdu.

i yapıcısı ile bu-> name $ ayarlayın.

Eğer bir şekilde bunu başarabilir? i istiyorum "benim adım şudur:" Onun mümkünse yapıcı özelliği değil tanımlanacak.

teşekkürler.

3 Cevap

Sen değişken değişkenler ile bir şey yapabilirsiniz:

$property = 'name';

echo "my name is: {$$property}";

Bu durumda, $ özelliği çok $ isim sonucudur, 'isim' olarak değerlendirir ve $ önüne edilir. Ben takdir umuyoruz Bu yaklaşım tehlikeleri olabilir.

Burada yapmaya çalıştığımız ne soru. Eğer mesajları şablon istiyorsanız, bu gibi bir şey düşünün:

$template = 'hi my name is %name%';
echo str_replace('%name%', $name, $template);

Daha genel olarak, dil tasarlanmış gibi nesnenin özelliklerini kullanmak ve gerekirse çıkış dizileri üretmek için yöntemler ekleyin. Değişken değişkenler genellikle gereksizdir.

Yapmanız gereken, tüm parantez ekleyin.

$property = "my name is: {$this->name}";

O da veriyor ne hata bağlıdır rağmen. Bu hata, bu belirli bir hat üzerinde oluştuğunu söylüyor mu?

Bir nesnenin kendi değişkene erişmek için $ this-> değişken kullanmak zorunda.

$this->property = "my name is: " . $this->name;

Bu, yalnızca nesnenin kendisi içinde çalışır. Burada bu konuda daha fazla bilgi bulabilirsiniz: http://ch2.php.net/manual/en/language.oop5.visibility.php.