I'm new to php
and I have executed below code.
<?php
class my_class{
var $my_value = array();
function my_class ($value){
$this->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;
}
?>
I got below errors. What could be the error?
Notice: Undefined variable: my_value in C:xampphtdocsMyTestPagesf.php on line 15
Fatal error: Cannot access empty property in C:xampphtdocsMyTestPagesf.php on line 15
You access the property in the wrong way. With the
$this->$my_value = ..
syntax, you set the property with the name of the value in $my_value. What you want is$this->my_value = ..
is the same as
To fix a few things from your example, the code below is a better aproach
This ensures, that my_value won't change it's type to string or something else when you call set_value. But you can still set the value of my_value direct, because it's public. The final step is, to make my_value private and only access my_value over getter/setter methods