개발! 딱 깔끔하고 센스있게!

PHP 치명적 오류 : 빈 속성에 액세스 할 수 없습니다 본문

개발 스크랩 메모/PHP

PHP 치명적 오류 : 빈 속성에 액세스 할 수 없습니다

렉사이 2020. 12. 17. 02:39

나는 php 초보, 나는 이미 아래의 코드를 수행했다.

my_value[] = $value; } function set_value ($value){ // Error occurred from here as Undefined variable: my_value $this->$my_value = $value; } } $a = new my_class ('a'); $a->my_value[] = 'b'; $a->set_value ('c'); $a->my_class('d'); foreach ($a->my_value as &$value) { echo $value; } ?> 

나는 아래의 잘못이 있다.

무슨 잘못인가?

Notice: Undefined variable: my_value in C:\xampp\htdocs\MyTestPages\f.php on line 15 Fatal error: Cannot access empty property in C:\xampp\htdocs\MyTestPages\f.php on line 15 

대답

너는 잘못된 방식으로 이곳에 들어섰다.

this ->my value =.문법, my value 값의 이름으로 속성을 설정합니다.

당신이 원하는 것은 $이것입니다 -> 나의 가치 =

$var = "my_value"; $this->$var = "test"; 

$this->my_value = "test"; 

예시 중의 몇몇 문제를 해결하기 위해서, 아래의 코드 는 더욱 좋은 방법이다

class my_class { public $my_value = array(); function __construct ($value) { $this->my_value[] = $value; } function set_value ($value) { if (!is_array($value)) { throw new Exception("Illegal argument"); } $this->my_value = $value; } function add_value($value) { $this->my_value = $value; } } $a = new my_class ('a'); $a->my_value[] = 'b'; $a->add_value('c'); $a->set_value(array('d')); 

set value, my value 형식을 string 또는 다른 유형으로 바꾸지 않을 수 있습니다.

그러나 당신은 여전히 나의 가치를 직접 설정할 수 있다.

그것은 공개이기 때문이다.

마지막 단계는 내 값을 사유화하고 getter / setter 방법만 방문하는 나의 값입니다.

Comments