$ This PHP atamak değer

0 Cevap php

Bir yöntemin içinden - Temelde ne elde etmek çalışıyorum nesne referansı, aynı sınıftan başka bir nesne yapmaktır. Şu işe olsaydı mükemmel olurdu:

$this = new self;

Ama bir php $this atayamazsın.

Ben tabii ki yönteminden başka bir nesneyi döndürmek ve kullanan, böylece tavsiye etmeyiniz olabilir, biliyorum. Soru:

Nasıl $this, aynı sınıftan başka bir nesnenin bir klonu olarak yapabilirsiniz?

ya da daha özel olarak ise,

I want an object to revert to a specific state that was previously saved.


EDIT:. Bu yararlı olabilecek bazı örnekler

Denetleyici, eylem ve çok daha fazla şeyler kabul eden bir URL nesne var söylüyorlar. Bunu aynı, diyelim ki, denetleyici ve eylem ile bağlantıları bir sürü almak zorunda olacak, ancak diğer özellikleri farklı olacaktır. Ben o (__ toString yöntemi sonra IOW) bir bağlantı çıktısı sonra döner durumunu kaydetmek için bir yöntemini çağırın, ortak parametreleri ile nesne örneğini.

$defaultPath = Url::factory('controller','action1')->extraParams('status',0)->save();

echo $defaultPath->action('action2'); // this has action2 as action and a status 0 as extra params
echo $defaultPath->extraParams('status',2); // this has action1 as action and 2 as status

Başka bir kullanım Ben bir CRUD tablo var ve ben ana tablo nesnesine aktarmak bir nesne olarak her sütun yapılandırmak zorunda olduğunu. Sütun geçtikten sonra sütun üzerinde bir sıfırlama yöntemini başlatmak, bu yüzden aşağıdaki gibi bir kod olabilir:

    $column->field = 'layouts_id';
    $column->value = $layoutId;
    $dbInput->addColumn($column);

    $column->field = 'pages_id';
    $column->value = $pagesId;
    $dbInput->addColumn($column);

Her iki durumda ben kod ve karışıklık tasarrufu, öyle değil mi?

0 Cevap