객체 하향 전달 특성
객체가 인스턴스 메서드를 호출한 후 해당 메서드에서 다른 클래스의 메서드를 정적으로 호출하면 정적으로 개체를 가져옵니다. 호출된 메소드
<code><span><span><?php </span><span><span>class</span><span>bee</span>{</span><span>public</span><span>$a</span> = <span>1</span>; <span>public</span><span><span>function</span><span>f</span><span>()</span>{</span><span>echo</span><span>$this</span>->a; <span>echo</span><span>'<br>'</span>; @lig::f(); } } <span><span>class</span><span>lig</span>{</span><span>public</span><span>$a</span> = <span>2</span>; <span>public</span><span><span>function</span><span>f</span><span>()</span>{</span><span>echo</span><span>$this</span>->a; } } <span>$obj</span> = <span>new</span> bee(); <span>$obj</span>->f();</span></span></code>
static late static 바인딩
static의 소스 메소드(this)는 3가지 다른 의미를 가집니다. 구문
<code><span><span>function</span><span>f</span><span>()</span>{</span><span>static</span><span>$v</span> = <span>1</span>; }</code>
<code><span><span>class</span><span>bee</span>{</span><span>static</span><span>$v</span> = <span>1</span>; <span>static</span><span><span>function</span><span>f</span><span>()</span>{</span>} }</code>
<code><span><span>class</span><span>bee</span>{</span><span>static</span><span>public</span><span>$a</span> = <span>10</span>; <span>static</span><span>public</span><span><span>function</span><span>f</span><span>()</span>{</span><span>echo</span> get_class().<span>':'</span>; <span>echo</span><span>self</span>::<span>$a</span>.<span>'-'</span>; <span>echo</span><span>static</span>::<span>$a</span>; } } <span><span>class</span><span>lig</span><span>extends</span><span>bee</span>{</span><span>static</span><span>public</span><span>$a</span> = <span>20</span>; } <span>echo</span> bee::f(); <span>echo</span><span>'<br>'</span>; <span>echo</span> lig::f();</code>
객체지향의 3대 개념
이상에서는 PHP의 기능을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.