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 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