PHP 7.0, (2016 -05-16), bunu desteklemiyor. Bu yönde bazı çabalar olmuştur (PHP 7.1 için reddedilen Typed Properties RFC gibi), ancak şu anda doğrudan destek yoktur.
Bu arada, bazı alternatifler vardır.
class Person
{
private $name;
public function getName(): string {
return $this->name;
}
public function setName(string $newName) {
$this->name = $newName;
}
}
Ayrıca kamu malına yapmak ve kodu okuyan insanlara tip bilgileri sağlamak için bir sınıfın üstünde kullanabilirsiniz:
Yalnızca türü bildirimleri görülüyor Alıcı ve ayarlayıcıların aracılığıyla erişilebilen bir özel mülkiyeti yapabilirsiniz alıcılar ve ayarlayıcılar ve her sınıfın üstünde
class Person
{
/**
* @var string
*/
public $name;
}
gerçekten de sen birleştirebilirsiniz: ve bir IDE kullanarak, ama bu zamanı tür denetimine sağlar.
Daha maceraperestseniz, __get
, __set
, __isset
and __unset
magic methods ile sahte bir mülk edinebilir ve türlerini kendiniz kontrol edebilirsiniz. Yine de tavsiye edeceğimden emin değilim.
Bildiğim kadarıyla değil. Bununla birlikte, genel olarak, bir mülkün değeri üzerindeki * herhangi bir * kısıtlama, bir düzenleyici aracılığıyla yapılmalıdır. Belirleyici kolayca "değer" argümanı için bir tiphint'e sahip olabileceğinden, gitmekte fayda var. –
Buradaki birçok çerçeve, _protected_ özniteliklerini kullanır (çoğunlukla denetleyiciler için). Özellikle bu durumlarda çok yararlı olacaktır. – CarlosCarucce