PHP의 빈 값에서 기본 개체 만들기

Subodh Poudel 2023년1월30일
  1. PHP에서 stdClass() 객체 생성
  2. PHP에서 객체로 배열 유형 변환
  3. PHP의 익명 클래스에서 객체 생성
PHP의 빈 값에서 기본 개체 만들기

PHP에서 객체를 생성하고 creating default object from empty value 오류를 해결하는 몇 가지 방법을 소개합니다.

PHP에서 stdClass() 객체 생성

객체를 초기화하지 않고 객체의 속성을 할당하려고 하면 오류가 발생합니다. 오류는 빈 값에서 기본 개체 생성 중이라고 표시됩니다. 오류는 php.ini 파일의 구성에 따라 달라집니다. 구성에서 오류가 표시되지 않으면 해당 스크립트에서 오류가 발생하지 않습니다. 오류를 없애기 위해 구성 파일을 변경하여 오류를 억제하는 것은 좋지 않습니다. 대신에 stdClass() 객체를 만들어 오류를 제거할 수 있습니다. 전역 네임스페이스에서 stdClass()의 객체로 변수를 선언하면 객체에 속성을 동적으로 할당할 수 있습니다.

예를 들어 $obj 변수를 만들고 NULL로 설정합니다. 그런 다음 $obj 개체를 사용하여 success 속성을 false로 설정합니다. 이 경우 출력 섹션에 표시된 대로 오류가 발생합니다. $obj가 객체로 초기화되지 않았기 때문입니다.

예제 코드:

$obj = NULL;
$obj->success = true;

출력:

Warning: Creating default object from empty value

오류를 제거하려면 먼저 stdClass()의 인스턴스와 함께 $obj 변수를 할당하십시오. 다음으로 $obj를 사용하여 success 속성을 true로 설정합니다. 그런 다음 print_r() 함수를 사용하여 $obj 객체를 인쇄합니다. isset() 함수를 사용하여 $obj가 이미 존재하는지 확인하는 것이 훨씬 좋습니다. 출력 섹션에서 $obj에 대한 정보를 볼 수 있습니다. 따라서 stdClass()의 객체를 생성하여 오류를 제거할 수 있습니다.

예제 코드:

$obj = new stdClass();
$obj->success =true;
print_r($obj);

출력:

stdClass Object ( [success] => 1 ) 

PHP에서 객체로 배열 유형 변환

배열 앞에 object 키워드를 사용하여 배열을 객체로 typecast할 수 있습니다. 이런 식으로 개체를 만들 수 있습니다. 그런 다음 개체에 속성을 할당할 수 있습니다. 객체를 이미 초기화했으므로 객체의 속성을 할당하는 동안 오류가 발생하지 않습니다. 이 메소드는 stdClass() 클래스의 객체도 생성합니다.

예를 들어 $obj 변수를 만들고 array() 함수에 할당합니다. 그런 다음 array() 앞에 괄호 안에 object 키워드를 작성합니다. 배열이 개체로 변환되었습니다. 그런 다음 $obj를 사용하여 success 속성에 true 값을 할당합니다. 마지막으로 print_r() 함수를 사용하여 객체를 인쇄합니다. 이런 식으로 배열을 형변환하는 객체를 만들고 오류를 제거할 수 있습니다.

예제 코드:

$obj = (object)array();
$obj->success =true;
print_r($obj);

출력:

stdClass Object ( [success] => 1 ) 

PHP의 익명 클래스에서 객체 생성

PHP의 익명 클래스에서 객체를 만들고 속성을 할당할 수 있습니다. new class 키워드를 사용하여 익명의 클래스를 만들 수 있습니다. 제네릭 클래스에서와 같이 속성 값을 설정할 수 있습니다. 속성에는 클래스가 있고 객체로 액세스할 수 있으므로 오류가 발생하지 않습니다.

예를 들어 $obj 개체를 만들고 new class 키워드를 사용하여 개체에 익명 클래스를 할당합니다. 그런 다음 public 속성 $success를 만들고 값을 true로 설정합니다. 클래스 외부에서 print_r() 함수를 사용하여 객체를 인쇄합니다. 이런 식으로 PHP의 익명 클래스에서 개체를 만들고 오류를 방지할 수 있습니다.

예제 코드:

$obj = new class {
 public $success = true;
};
print_r($obj);

출력:

class@anonymous Object ( [success] => 1 ) 
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

관련 문장 - PHP Object