#php #arrays #json
#php #массивы #json
Вопрос:
Это код. И иметь закрытое поле под названием test.
<?php
class Boo {
private $test = array( 123, '456');
function __construct($x,$y){
$opts = array(
'http'=>array( 'header' => 'Connection: close')
);
$context = stream_context_create($opts);
$this->test = file_get_contents('http://localhost/y.php?a='.$x.'amp;b='.$y, false, $context);
}
public static function Boo($x,$y) {
return json_encode(array($y, $x $y));
}
}
if(isset($_REQUEST['a'])){
print Boo::Boo($_GET['a'],$_GET['b']);
}
else {
// print (new Boo(11,12));
}
?>
Я могу только написать функцию для печати $test
значения без внесения каких-либо изменений.
Идеи?
Ответ №1:
Для доступа к частным свойствам вы должны написать getter
метод в своем классе.
public function getTest() {
return $this->test;
}
Затем вы можете вызвать getter
метод следующим образом:
$myObj = new Boo();
var_dump($myObj->getTest());
Если вы не хотите писать метод получения, вам нужно установить для свойства accessibility значение public
для доступа к нему за пределами области видимости класса.
Но я думаю, что вы смешиваете статический и нестатический контент в своем классе.
Кстати, методы класса должны начинаться со строчных букв.
Ответ №2:
Короткий ответ: вы не можете.
Оно закрыто и поэтому недоступно извне класса. Изнутри вы всегда можете получить к нему доступ, но вам нужен геттер, чтобы сделать его общедоступным.
Комментарии:
1. вот как я решил проблему … к сожалению, я мало что понял.