OO PHP kullanırken / set değişkenleri almak için en semantik "doğru" yolu hangisidir?
Ben bildiklerimden, referans olarak geçen ve değer geçirerek, alıcılar / belirleyiciler vardır. Değeriyle geçirmeden referans geçen daha yavaştır, ancak başvuru geçirerek aslında değişkenin bellek yönetir. Doğru / daha verimli, daha semantik olan, ben bunu yapmak istiyorum (veya en azından akıl olmaz) varsayarsak?
Nesnenin etrafında geçirilen değişkenler ile uğraşırken ben alıcı / ayarlayıcı türünü kullanarak oldum. Ben bu (uzun liste fonksiyon argümanlarını) "okumak" için anlamsal olarak doğru ve daha kolay buluyorum. Ama daha az verimli olduğunu düşünüyorum.
(Tabii ki yapmacık değil) bu örneği ele alalım:
class bogus{
var $member;
__construct(){
$foo = "bar"
$this->member = $foo;
$this->byGetter();
$this->byReference($foo);
$this->byValue($foo);
}
function byGetter();{
$baz =& $this->member;
//set the object property into a local scope variable for speed
//do calculations with the value of $baz (which is the same as $member)
return 1;
}
function byReference(&$baz){
//$baz is already set as local.
//It would be the same as setting a property and then referencing it
//do calculations with the value of $baz (same as $this->member)
return 1;
}
function byValue($baz){
//$baz is already set as local.
//It would be the same as setting a property and then assigning it
//do calculations with the value of $baz
return 1;
}
}