Hai. Tworzyłem tę prostą klasę ciągów i zastanawiałem się, czy jest to bardziej naturalny sposób robienia tego.Jak zrobić naturalną klasę String w PHP
class Str{
function __construct($str){
$this->value = $str;
$this->length = strlen($str);
..
}
function __toString(){
return $this->value;
}
..
}
więc teraz muszę używać go tak:
$str = new Str('hello kitty');
echo $str;
Ale to nie robi wyglądać bardzo „naturalny” w nawiasach. Więc zastanawiałem się, czy coś podobnego lub podobnego było możliwe.
$str = new Str 'hello kitty'; # I dont believe this is possible although this is preferred.
$str = new Str; # get rid of the construct param.
$str = 'value here'; #instead of resetting, set 'value here' to Str::$value??
W drugiej metodzie, czy istnieje sposób mogę ewentualnie złapać tej zmiennej Bing ustawiony ponownie i zamiast resetowanie go, ustaw na ul :: $ wartość? Zastanawiałem się nad tym i najbliżej, do którego mogłem dojść, to metoda __destruct. ale nie było możliwości dowiedzenia się, jak został zniszczony. Czy to możliwe, czy marnuję swój czas?
Tracisz czas. :-) –
To, co robisz, to w zasadzie klasa otoki.Jedną z różnic, które znajdziesz w Javie, jest autoboxing (ciąg automatycznie uznawany za ciąg) i jest to funkcja językowa. To, co próbujesz tutaj zrobić, faktycznie modyfikuje składnię. –