[PHP] 함수, 클래스, 객체, 상속, 트레이트
함수
- 내부 함수를 사용할 수 있다.
- 클로저나 콜백에 사용할 수 있는 익명함수를 정의할 수 있다.
- 기본적으로 Call by value지만 선언 시``&``를 붙이면 Call by reference로 동작한다.
선언 시에만 ``&``를 붙이고, 호출 시에는 그냥 호출한다.
함수나 메소드 앞에 ``&``를 붙일 수 있다. - ``php return [v1, v2]`` 배열을 만들면서 리턴할 수 있다.
- Parameter를 정의할 때 Type을 적어주면, 받을 수 있는 Type을 제한할 수 있다. ( Type Hinting )
객체
기본적으로 자바와 흡사한데 ``php trait``가 추가되었다.
클래스 외부에서 클래스의 ``php static, constant``에 접근할 때,
클래스 내부에서 상속 계층 상의 프로퍼티나 메소드에 접근할 때는 `` ->``가 아니라 `` ::``를 사용한다.
접근제한 키워드
``php public, protected, private`` 키워드를 지정할 수 있다.
생성자, 소멸자
```php
function __construct( ) { ... }
function __destruct( ) { ... }
```
상속
``php extends`` 단일상속만 허용한다.
``php implements`` 인터페이스는 여러개를 받아 구현할 수 있다.
``php final`` 오버라이드나 상속을 금지할 수 있다.
trait
오버라이드 우선순위는 ``클래스 메소드 > 트레이트 메소드 > 상속한 메소드`` 순이다.
```php
trait UserTrait{
public function userTraitMethod(){
...
}
}
class UserClass{
use UserTrait, ...;
...
}
```
'Languages & Frameworks > PHP' 카테고리의 다른 글
[PHP] SQL Escape & Bypass (0) | 2017.10.23 |
---|---|
[PHP] mysqli, PDO / password_* (0) | 2017.06.24 |
[PHP] form tag, GET POST / cookie, session (0) | 2017.06.10 |
[PHP] HTTP response header 수정 ( redirect, Download Dialog ) (0) | 2017.06.08 |
[PHP] Program execution, Shell escape (0) | 2017.06.07 |