bazı çerçeveler içinde bu kod satırını gördü?
cevap
Bir sınıfın üye işlevi içinde new self()
yazdığınızda, bu sınıfın bir örneğini alırsınız. That's the magic of the self
keyword.
Yani:
class Foo
{
public static function baz() {
return new self();
}
}
$x = Foo::baz(); // $x is now a `Foo`
Sen almak bir Foo
kullandığınız statik eleme türetilmiş bir sınıf için bile olsa:
class Bar extends Foo
{
}
$z = Bar::baz(); // $z is now a `Foo`
Eğer (bir anlamda) polimorfizmi etkinleştirmek isterseniz, ve PHP, kullandığınız niteleyiciyi alsın, static
anahtar kelimesi için self
anahtar sözcüğünü kullanabilirsin:
class Foo
{
public static function baz() {
return new static();
}
}
class Bar extends Foo
{
}
$wow = Bar::baz(); // $wow is now a `Bar`, even though `baz()` is in base `Foo`
Bu, late static binding olarak bilinen PHP özelliği ile mümkündür; static
anahtar kelimesinin diğer daha geleneksel kullanımları için karıştırmayın.
hmm..shortly: new static() - hangi sınıfın genişletildiğine bakılmaksızın geçerli sınıfın nesnesini döndürür ve yeni self() - nesneyi, bu yöntemin bildirildiği veya genişletildiği sınıftan döndürür (son sürümü işlev) ... doğru anlıyorum? – Hello
@Hello: Temel olarak. –
evet benim için yeterli) temelde bile) – Hello
- 1. Git, <<<<<<< HEAD dosyasına
- 2. "<%:" ne yapıyor?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>"<%:" Ne vermez: do
- 3. <: <İş nasıl?
- 4. PureScript'te üçlü işaret (<<< `) işareti ne kadar azdır?
- 5. Java, bitshifts kullanırken, neden 1 << 32! = 1 << 31 << 1?
- 6. Java "<<" ne anlama geliyor?
- 7. << = operatör javascript’te ne yapıyor?
- 8. EJS: <% = versus <% -
- 9. ZF2: Zend Framework 2 - nasıl ben bu</p> <pre><code>public function providerAction() { $result = new ViewModel(); $result->setTerminal(true); return $result; } </code></pre> <p>kullanabileceğinizi biliyor düzeni
- 10. cmake -D <var>: <type> = <value>: <type> ne olabilir?
- 11. Nedir? ve << demek?
- 12. Swift:</p> <pre><code>return TyphoonDefinition.withClass(AppDelegate.classForCoder()) { (definition) in definition.injectProperty("assembly") }) </code></pre> <p>: .classForCoder alternatif()
- 13. İçindeki eleman sayısı <5 in <a1 <0</ a1><T>
- 14. Statik başlatıcılar?</p> <pre><code>private static Object myVar = new Object(); </code></pre> <p>Ve: arasındaki farkı nedir
- 15. Kanal seç <- <- Kanal
- 16. <nedir? ve <? php
- 17. Bayt değerlerini karşılaştırın? ... does</p> <pre><code>boolean match = (data[0] == 0xFE); </code></pre> <p>... ederken
- 18. Objective-C'de özel yönergeler oluşturmak mümkün mü?</p> <ul> <li>@interface</li> <li>@implementation</li> <li>@end</li> <li>@protocol bence</li> <li>@property</li> <li>@synthesize</li> </ul> <p>:
- 19. büyük Excel i</p> <pre><code>org.xml.sax </code></pre> <p>kitaplık çalışıyorum kütüphaneye</p> <pre><code>org.apache.poi XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream); </code></pre> <p>kullanıyorum
- 20. Akış çıkışında <yerine <neden hala <çoğum?
- 21. </p> <pre><code>var tpl = ` <div> template <span>string</span> </div> ` </code></pre> <p>üretecektir
- 22. ggplot2'deki scale_colour_brewer() renk aralığı nasıl ayarlanır?</p> <pre><code>p <- ggplot()+ geom_line(data=data, aes(x, y, color=Label))+ scale_colour_brewer(palette="Oranges") </code></pre> <p>:
- 23. Şu izle ifadem tutan bana gösteriyor Şu anda bir</p> <pre><code>Expression<Func<T,bool>> </code></pre> <p>bir</p> <pre><code>Expression<Func<T,object>> </code></pre> <p>dönüştürmek çalışıyorum
- 24. XPath - tüm elemanlar alt elemanlara belge</p> <pre><code><a> <b> <c/> <d/> </b> <b> <c/> <d/> </b> </a> </code></pre> <p>Verilen
- 25. Statik nedir <T> List <T> methodName (Liste <? super T> giriş)
- 26. Statik <E> nedir?
- 27. <section>, <nav> ve <article>
- 28. İçinde Gettext kullanarak PHP <<< EOF dizgisi
- 29. SQL Sorgu: Ben olsun</p> <pre><code>SELECT * from [TABLE] Group By Data </code></pre> <p>:</p> <pre><code>[Data] "John" "John" "John" "John.wane" </code></pre> <p>Ben sorgulamak: Ben SQLite kullanıyorum
- 30. <a1> C</ a1>
Bu hangi çerçeve oldu? –
örneğin laravel, ama ben sadece çekirdekte değil, onların api kullanırken değil – Hello
Daha fazla bilgi için bu sayfayı kontrol edin; http://stackoverflow.com/questions/5197300/new-self-vs-new-static –