Объявите переменную $data
как глобальные внутри конструктора:
function __construct() {
global $c;
global $data;
$data = array("name"=>$c['name'],
"family"=>$c['family']);
}
Тогда будет видно в другой функции, а также.
Отметьте, что настоятельно рекомендуется использовать глобальные переменные, пересмотреть свой класс, чтобы использовать переменные класса с помощью getters + setters.
Более правильный способ будет использовать
class testObject
{
private $data;
function __construct(array $c)
{
$this->data = array(
"name"=>$c['name'],
"family"=>$c['family']
);
}
function showInfo()
{
print_r($this->data);
}
// getter: if you need to access data from outside this class
function getData()
{
return $this->data;
}
}
Кроме того, рассмотреть вопрос разделения полей данных в отдельных переменных класса, как показано ниже. Тогда у вас есть типичный чистый класс данных.
class testObject
{
private $name;
private $family;
function __construct($name, $family)
{
$this->name = $name;
$this->family = $family;
}
function showInfo()
{
print("name: " . $this->name . ", family: " . $this->family);
}
// getters
function getName()
{
return $this->name;
}
function getFamily()
{
return $this->family;
}
}
И вы можете даже построить этот объект с данными от вас глобальной переменной $c
, пока вы не elimitate его из кода:
new testObject($c['name'], $c['family'])
Вы действительно посмотрели: http://uk.php.net/manual/en/language.oop5.php? –
Не ответ, но связанный: http://stackoverflow.com/questions/11923272/use-global-variables-in-a-class/11923384#11923384 – PeeHaa
Использовать свойства класса вместо 'global': http: // www.php.net/manual/en/language.oop5.properties.php Использование 'global' (почти?) никогда не является хорошим решением. – str