소개 PHP는 클래스의 식별자가 클래스별로 변경되지 않은 상수 값을 갖도록 정의할 수 있습니다. 클래스 내에서 변수 또는 속성을 구별하기 위해 상수 이름 앞에 $ 기호가 붙지 않고 다음과 같이 정의됩니다. 상수 예선. 다른 수정자가 정의에 사용될 수 있지만 상수의 기본 가시성은 공개입니다. 상수의 값은 변수나 함수 호출/속성이 아닌 특정 표현식이어야 합니다. 범위 확인 연산자를 사용하여 클래스 이름을 통해 상수 값에 액세스합니다. self를 통해 참조할 수 있지만 메서드 내부 변수 구문 class SomeClass{
소개 객체지향 프로그래밍 용어에서 생성자는 객체 생성 시 자동으로 호출되는 클래스 내부에 정의된 메소드이다. 생성자 메서드의 목적은 객체를 초기화하는 것입니다. PHP에서 특별한 이름의 메소드 __construct 생성자 역할을 합니다. 구문 __construct ([ mixed $args = "" [, $... ]] ) : void 생성자 예제 이 예제는 객체가 선언될 때 생성자가 자동으로 실행됨을 보여줍니다. 예시 <?php class myclass{ function __cons
소개 최종 사용 PHP 클래스의 인스턴스 메소드 정의에서 키워드는 자식 클래스에 의해 재정의되는 것을 방지합니다. 마찬가지로 클래스 자체의 정의에 final이 사용되면 해당 클래스를 확장할 수 없습니다. 구문 final class myclass {} class myclass{ final method mymethod(){} } 최종 방법 예 다음 예에서 최종 방법을 재정의하려고 시도하면 오류가 발생합니다. 예시 <?php class parentclass{ final functio
소개 상속은 객체 지향 프로그래밍 방법론의 중요한 원칙입니다. 이 원리를 이용하여 두 클래스 간의 관계를 정의할 수 있습니다. PHP는 객체 모델에서 상속을 지원합니다. PHP는 확장을 사용합니다. 두 클래스 간의 관계를 설정하는 키워드입니다. 구문 class B extends A 여기서 A는 기본 클래스(부모라고도 함)이고 B는 하위 클래스 또는 자식 클래스라고 합니다. 자식 클래스는 부모 클래스의 public 및 protected 메서드를 상속합니다. 자식 클래스는 상속된 메서드를 재정의하거나 재정의할 수 있습니다. 그렇지
소개 인터페이스는 구현 방법을 정의하지 않고도 클래스에서 구현할 메서드를 지정할 수 있는 객체 지향 프로그래밍의 중요한 기능입니다. PHP는 인터페이스인 경우 인터페이스를 지원합니다. 예어. 인터페이스는 클래스와 비슷하지만 정의 본문이 없는 메서드가 있습니다. 인터페이스의 메소드는 공개되어야 합니다. 이러한 메서드를 구현하는 상속된 클래스는 구현으로 정의해야 합니다. extends 키워드 대신 키워드를 사용하고 상위 인터페이스에서 모든 메소드의 구현을 제공해야 합니다. 구문 <?php interface testinterfa
소개 PHP 5부터 객체의 보이는 모든 항목 목록을 반복할 수 있습니다. foreach를 사용하여 반복을 수행할 수 있습니다. 루프 및 반복자 상호 작용. IteratorAggregate도 있습니다. 이 용도로 사용할 수 있는 PHP 인터페이스 foreach 루프 사용 예시 <?php class myclass{ private $var; protected $var1; public $x, $y, $z; public function __c
소개 PHP의 매직 메소드는 특정 작업을 수행하기 위한 특수 메소드입니다. 이러한 메서드는 접두사로 이중 밑줄(__)을 사용하여 이름이 지정됩니다. 이러한 모든 함수 이름은 예약되어 있으며 관련 마법 기능 이외의 다른 목적으로 사용할 수 없습니다. 클래스의 마법 메서드는 public으로 선언해야 합니다. 이러한 메소드는 특정 조건이 충족될 때 자동으로 호출되는 인터셉터 역할을 합니다. 현재 PHP에서 사용할 수 있는 마법의 방법은 다음과 같습니다. __수면 public __sleep ( void ) : array 클래스의 se
소개 PHP에는 비교 연산자가 있습니다 == 이를 사용하여 두 객체 변수의 간단한 비교를 수행할 수 있습니다. 둘 다 같은 클래스에 속하고 해당 속성의 값이 같으면 true를 반환합니다. PHP의 === 연산자는 두 개체 변수를 비교하고 동일한 클래스의 동일한 인스턴스를 참조하는 경우에만 true를 반환합니다. 이러한 연산자와 객체를 비교하기 위해 다음 두 클래스를 사용합니다. 예시 <?php class test1{ private $x; private $y; &n
소개 PHP에서 객체는 기본적으로 참조로 전달됩니다. 여기서 reference는 두 개의 다른 변수가 동일한 값에 쓸 수 있도록 하는 별칭입니다. 개체 변수는 개체 자체를 값으로 포함하지 않습니다. 실제 개체를 찾을 수 있도록 허용하는 개체 식별자만 포함합니다. 객체가 인수로 보내지거나 반환되거나 할당될 때 다른 변수는 별칭이 아닙니다. 대신 동일한 객체를 가리키는 식별자의 복사본을 보유합니다. 예시 PHP에는 spl_object_hash()가 있습니다. 객체의 고유한 해시 ID를 반환하는 함수입니다. 다음 코드에서 동일한 객체
소개 오버로딩에 대한 해석은 C++ 또는 Java와 같은 다른 객체 지향 언어와 비교하여 PHP에서 다릅니다. 여기서 이 용어는 동일한 이름의 메서드가 두 번 이상 있지만 인수 및/또는 반환 유형이 다른 클래스를 가질 수 있는 능력을 의미합니다. 반면에 PHP에서는 속성과 메서드를 동적으로 생성하는 기능을 오버로딩이라고 합니다. PHP의 마법의 방법 (이중 밑줄로 시작하는 메서드 이름)은 동적 속성 및 메서드를 설정하는 데 사용됩니다. 속성 오버로딩을 위해 다음과 같은 마법의 방법이 사용됩니다 - 구문 public __set (
소개 클래스 내부에 선언된 데이터 멤버를 속성이라고 합니다. 속성은 속성 또는 필드라고도 합니다. PHP에서 속성은 액세스 지정자 키워드 public 중 하나로 한정됩니다. , 비공개 또는 보호 . 속성 이름은 PHP에서 유효한 레이블이 될 수 있습니다. 속성 값은 클래스 인스턴스마다 다를 수 있습니다. 그래서 인스턴스 변수라고도 합니다. 모든 인스턴스 메서드 내에서 pesudo-변수 $this로 사용 가능한 개체의 컨텍스트를 호출하여 속성에 액세스할 수 있습니다. . 속성이 공개로 선언된 경우 의 도움으로 이의를 제기할 수 있
소개 PHP에서 이중 콜론 :: 범위 확인 연산자로 정의됩니다. . 클래스 수준에서 정의된 상수, 속성 및 메서드에 액세스하려는 경우에 사용됩니다. 이러한 항목을 클래스 정의 외부에서 참조하는 경우 범위 확인 연산자와 함께 클래스 이름을 사용합니다. 이 연산자는 Paamayim Nekudotayim이라고도 합니다. , 히브리어로 이중 콜론을 의미합니다. 구문 <?php class A{ const PI=3.142; static $x=10; } echo A::PI; echo A::$
소개 바이트 스트림 형태의 모든 객체의 문자열 표현은 serialze()에 의해 얻습니다. PHP에서 함수. 객체의 모든 속성 변수는 문자열에 포함되며 메서드는 저장되지 않습니다. 이 문자열은 모든 파일에 저장할 수 있습니다. 바이트 스트림에서 객체를 검색하기 위해 unserialize() 함수가 있습니다. unserialize()를 호출하기 전에 해당 클래스의 정의를 사용할 수 있어야 합니다. 기능. 예시 먼저 다음 클래스의 객체를 직렬화하고 문자열을 파일에 저장합니다. <?php class test1{ &
소개 연산자를 사용하여 해당 객체에서 액세스할 수 없습니다. 사실, object는 클래스의 어떤 인스턴스에도 접근할 필요가 없습니다. 클래스에서 정적 항목의 기본 가시성은 공개입니다. 정적 속성 외부 클래스에서 정적 속성에 액세스하려면 클래스 이름과 함께 범위 확인 연산자(::)를 사용해야 합니다. 클래스 이름으로 평가되는 문자열 변수는 정적 속성에 제공할 수도 있습니다. <?php class testclass{ static $name="test"; } echo testclass::
소개 PHP에서 후기 정적 바인딩의 이 기능은 정적 상속에서 클래스를 참조하는 데 사용됩니다. 정적 메서드가 호출되면 클래스 이름에 범위 결정 연산자(::)가 붙고 다른 인스턴스 메서드의 경우 객체 이름을 사용하여 호출합니다. static::은 메서드가 정의된 클래스를 사용하여 해결되지 않고 대신 런타임 정보를 사용하여 계산됩니다. 현재 클래스에 대한 정적 참조는 정의된 위치가 아니라 함수가 속한 클래스를 사용하여 확인됩니다. 예시 다음 코드에서 부모 클래스는 self::접두사로 정적 ethod를 호출합니다. 자식 클래스로 호출
소개 PHP는 다중 상속을 지원하지 않습니다. 이 제한은 특성의 기능으로 어느 정도 극복됩니다. . 코드 재사용의 메커니즘입니다. 특성의 정의는 클래스와 유사합니다. 그러나 직접 인스턴스화할 수는 없습니다. 대신 사용을 통해 특성의 기능을 클래스에서 사용할 수 있습니다. 예어. 따라서 클래스는 트레이트에 정의된 메서드를 사용하거나 재정의할 수도 있습니다. 이것은 상속될 수 있는 다른 모든 상위 클래스에 추가됩니다. 특성은 또한 인터페이스와 유사합니다. 차이점은 인터페이스가 클래스를 구현하여 수행해야 하는 내부 메소드 정의를 제공
소개 PHP에서는 class를 사용하여 사용자 정의 복합 데이터 유형을 가질 수 있습니다. 예어. 클래스의 새 인스턴스는 개체입니다. 개체의 특성은 속성, 상수 및 메서드 멤버를 포함할 수 있는 클래스 정의에 따릅니다. 클래스 멤버의 접근성(가시성이라고도 함)은 해당 정의에 첨부된 가시성 접두사 키워드에 따라 다릅니다. PHP에는 세 가지 가시성 키워드(공개)가 있습니다. , 비공개 및 보호 . public 키워드로 선언된 클래스 멤버는 어디에서나 접근할 수 있습니다. 보호된 멤버는 해당 클래스 내에서 그리고 클래스를 상속하여
소개 $_GET HTTP 요청의 URL에 추가된 쿼리 문자열을 통해 현재 스크립트에 전달된 변수의 연관 배열입니다. 배열은 GET 요청 외에 쿼리 문자열이 있는 모든 요청으로 채워집니다. $HTTP_GET_VARS 동일한 초기 정보를 포함하지만 더 이상 사용되지 않습니다. 기본적으로 클라이언트 브라우저는 HTTP GET 방식으로 서버에 URL 요청을 보냅니다. URL에 연결된 쿼리 문자열에는 &로 연결된 키=값 쌍이 포함될 수 있습니다. 상징. $_GET 연관 배열은 이러한 키 값 쌍을 저장합니다. 브라우저의 URL이 ht
소개 $GLOBALS는 모든 전역 정의 변수에 대한 참조의 연관 배열입니다. 변수의 이름은 키를 구성하고 그 내용은 연관배열의 값입니다. $GLOBALS 예시 이 예는 전역 변수의 이름과 내용을 포함하는 $GLOBALS 배열을 보여줍니다. 예시 <?php $var1="Hello"; $var2=100; $var3=array(1,2,3); echo $GLOBALS["var1"] . "\n"; echo $GLOBALS["var2"] . "\n&quo
소개 $_SERVER HTTP 헤더, 경로 및 스크립트 위치 등에 관한 정보를 보유하는 슈퍼글로벌입니다. 모든 서버 및 실행 환경 관련 정보는 이 연관 배열에서 사용할 수 있습니다. 이 배열의 항목 대부분은 웹 서버에 의해 채워집니다. 포함된 $HTTP_SERVER_VARS 5.4.0 이전의 PHP 버전 동일한 정보를 포함하지만 지금은 제거되었습니다. 다음은 이 배열의 일부 저명한 구성원입니다. PHP_SELF - 현재 실행 중인 스크립트의 파일 이름을 저장합니다. 예를 들어, 로컬 서버의 문서 루트의 테스트 폴더에 있는 스크