클래스를 선언할 때 객체가 가져야 하는 모든 변수와 함수를 나열해야 합니까? 이를 속성과 메서드라고 합니다. 그림 1은 클래스의 구조를 보여줍니다. 중괄호 안에만 변수를 선언할 수 있습니다.
({}) 또는 함수. 그림 2는클래스 Name이 다른 클래스를 확장하는
방법을 보여줍니다.
{
변수 선언에 액세스
액세스 함수 선언
}
이름 = $이름;
$this->password = $password;
$this->lastLogin = 시간();
$this->접속++;
}
// 마지막 방문 시간을 가져옵니다.
함수 getLastLogin()
{
return(date("M d Y", $this->lastLogin));
}
}
//객체의 인스턴스를 생성합니다.
$user = new User("Leon", "sdf123")
//마지막 방문 시간을 가져옵니다.
print($user->getLastLogin() ."n");
//사용자 이름 인쇄
print("$사용자->이름n");
?>
속성을 선언할 때 데이터 유형을 지정할 필요가 없습니다. 변수는 상황에 따라 정수, 문자열 또는 다른 객체일 수 있습니다. 속성을 선언할 때 주석을 추가하는 것이 좋습니다. 속성의 의미와 데이터 유형
메서드를 선언하면 클래스 외부에서 함수를 정의하는 것과 동일한 작업을 수행합니다. 즉, 메서드와 속성에는 자체 네임스페이스가 있습니다. 예를 들어, 클래스는 date()라는 메서드를 정의할 수 있습니다. 그러나
클래스 메서드
에는 소위 for 또는 while과 같은 이름을 지정할 수 없습니다.PHP 유형 힌트의 date(). 유형 힌트는 메소드에 인수로 전달되는 다른 클래스의 이름입니다. 스크립트가 메소드를 호출하고 클래스의 인스턴스가 아닌 변수를 전달하는 경우 PHP는 " 치명적인 오류". 정수, 문자열 또는 부울과 같은 유형 힌트를 제공하는 다른 유형에 제공하지 않았을 수 있습니다. 글을 쓰는 당시에는 유형 힌트에 배열 유형이 포함되어야 하는지 여부에 대해 논란이 있었습니다.
유형 힌트는 함수 매개변수 또는 연산자 인스턴스의 데이터 유형을 테스트하기 위한 지름길입니다. 항상 이 메소드를 반환할 수 있습니다. 매개변수가 정수와 같은 데이터 유형이 되도록 해야 합니다.
<?php
의 위젯 예
//요소
클래스위젯
{
공개 $name='없음';
공개 $생성=FALSE;
}
//어셈블러
클래스어셈블러
{
공개 함수 make(Widget $w)
{
print("$w->이름 만들기n");
$w->생성=TRUE;
}
}
//컴포넌트 객체 생성
$thing = 새 위젯;
$thing->name = '가젯';
//어셈블리 컴포넌트
어셈블러::make($thing);
?>
매개변수에 전달된 변수 외에도 메소드에는 클래스의 개별 인스턴스를 나타내는 특수 변수가 포함되어 있습니다. 이를 사용하여 객체의 속성 및 기타 메소드를 가리켜야 합니다. 정규화되지 않은 변수가 로컬 속성에 제출된다고 가정합니다. 그러나 PHP에서는 메서드의 모든 변수가 메서드의 특정 범위 내에서만 사용됩니다. 그림 2의 User 클래스 생성자에서 이 변수를 사용하는 것에 유의하세요.
PHP는 public, private 및 protected와 같은 속성 및 메서드가 선언되기 전에 액세스 한정자를 정의합니다. 또한 클래스에서 상수를 선언할 수도 있습니다. 이 장에서는 관련 토론을 진행합니다.
동일한 액세스 방법을 사용하는 여러 속성을 쉼표로 구분하여 한 줄에 나열할 수 있습니다. 그림 2에서 User 클래스에는 $password 및 $lastLogin이라는 두 개의 개인 속성이 있습니다.