좀 프레임 워크에서이 코드 줄을 보았다?
47
A
답변
76
클래스의 멤버 함수 내에 new self()
을 쓰면 해당 클래스의 인스턴스가 생깁니다. That's the magic of the self
keyword.
그래서 :
class Foo
{
public static function baz() {
return new self();
}
}
$x = Foo::baz(); // $x is now a `Foo`
당신은 얻을 Foo
사용한 정적 한정자가 파생 클래스의 경우에도 :
class Bar extends Foo
{
}
$z = Bar::baz(); // $z is now a `Foo`
당신이 (의미에서) 다형성을 사용하려면, 그리고 PHP에서 사용하는 한정자에주의를 기울여야 할 경우 static
키워드의 self
키워드를 바꿀 수 있습니다.
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`
이것은 PHP 기능인 late static binding으로 가능합니다. 다른보다 일반적인 사용을 위해 혼동하지 마십시오. 키워드 static
.
관련 문제
- 1. Ruby 클래스 << Klass = Module :: new
- 2. "<<<<<< HEAD"템플릿에
- 3. Regex가하는 일 : new Regex (@ "(? <! \\),");
- 4. github add <<<<<<< HEAD
- 5. Heredoc <<< 또는 <<?
- 6. , 나는이</p> <pre><code>var data = new JobDataMap(new Dictionary<string,string> { {"obj", "stringify"} }); </code></pre> <p>을하고 있어요 오른쪽 지금 IDictionary
- 7. git "<<<<<< HEAD"
- 8. <<< EOT
- 9. 연산자 << : std :: cout << i << (i << 1);
- 10. <<
- 11. [<Control> - <Return>]
- 12. 목록의 차이점은 무엇입니까 <String> stringList = new ArrayList <String>() 및 List <String> stringList = new ArrayList()?
- 13. <<
- 14. 우분투의 리디렉터 "<<<"?
- 15. <<< 'EOT'에 POST 데이터 출력
- 16. Gemfile 구문 오류 : <<<<<<< localhost를 시작하려고 할 때 HEAD
- 17. << 연산자가 어떻게 작동합니까?
- 18. <? 및 <? php
- 19. </p> <pre><code>List<TextBox> textBoxList = new List<TextBox>(); </code></pre> <p>을 채우는 방법 textboxlist
- 20. ConcurrentHashMap의 내가지도</p> <pre><code>ConcurrentMap<K, V> myMap = new ConcurrentHashMap<>(); </code></pre> <p>다음 한 지금은 원자 그지도에 새로운 객체를 삽입 할
- 21. 내가 여기 <code>Vol</code></p> <pre><code>select new { Symbol, Close, Date, Vol}; </code></pre> <p>같은 새로운 목록을 생성 할
- 22. 가상 << operator
- 23. 정적 Hashtable <Leader, ArrayList <Integer>> assignedLeader = new Hashtable <Leader, ArrayList <Integer>> (20);
- 24. 출력 <code>New York NY</code>-<code>$new_string</code> 필요 PHP
- 25. 리팩토링은 내가 <code>new</code> 활동과 더불어, <code>TopicsController</code>이
- 26. <? php와 <?
- 27. 내가이 형식</p> <pre><code>www.example.com/?city_name="New-York" </code></pre> <p>에있는 URL이 내가 궁금했다
- 28. java.lang.NoClassDefFoundError가 : <pre><code>facebook.Authorize(activity, FB_PERMISSIONS, Facebook.ForceDialogAuth, new LoginDialogListener()); </code></pre> <p></p> 내가이 오류 : ForceAuthDialog
- 29. </p> <pre><code>Jenkins.instance.getItem('my_folder').addView(new ListView('MyNewView') </code></pre> <p>이것은 잘 작동합니다 .. 멋져요
- 30. 내부의 데이터 계측 <div><p>data</p></div>
어떤 프레임 워크입니까? –
예를 들어 laravel,하지만 코어에서만 발견되었지만 API를 사용하지 않는 경우 – Hello
자세한 정보는이 페이지를 확인하십시오. http://stackoverflow.com/questions/5197300/new-self-vs-new-static –