Мне нужно распечатать поле на php

#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. вот как я решил проблему … к сожалению, я мало что понял.