나는 마법 방법 __GET 및 __SET을 (를) 배우려고합니다. 지금은 __GET 메서드를 사용하고 있습니다.
그리고 개인 속성에 액세스 할 수 없음 오류가 표시됩니다. 내가 무슨 일이 일어나고 있는지 확실하지 않다
<?php
class getset {
private $name;
public function __set($property, $value) {
if((property_exists($this, $property))) {
$this->$property = $value;
echo "Successfully updated {$property} to {$value}";
} else {
echo "This failed.";
}
}
}
getset::$name = 'Thomas';
?>
:
여기 내 코드입니다. __SET 함수에서 매개 변수를 살펴 봤는데 제대로 따라 간 것 같습니다.
나는 무슨 일이 일어나고 있는지 잘 모르겠다.
Fatal error: Uncaught Error: Undefined class constant 'name' in C:\xampp\htdocs\OOP Lessons\Classes\getset.inc.php:22 Stack trace: #0 {main} thrown in C:\xampp\htdocs\OOP Lessons\Classes\getset.inc.php on line 22
그 라인은 다음과 같습니다 :
<?php
class getset {
private $name;
public function __set($property, $value) {
if((property_exists($this, $property))) {
$this->$property = $value;
echo "Successfully updated {$property} to {$value}";
} else {
echo "This failed.";
}
}
}
$newObj=new getset();
$newObj->name='Thomas';
print_r($newObj);
?>
// 출력 :
Successfully updated name to Thomas
getset Object
(
[name:getset:private] => Thomas
)
다음
–Private 속성은 클래스 외부에서 액세스 할 수 없으므로 private –
@PraveenM을 호출했습니다. 죄송합니다. 내 코드 세트는'getset :: $ name = 'Thomas';'편집했습니다. –