这是代码。并有一个名为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.'&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
值而不做任何修改
想法?
答案 0 :(得分:0)
要访问私有媒体资源,您必须在班级中编写getter
方法。
public function getTest() {
return $this->test;
}
然后你可以像这样调用getter
方法:
$myObj = new Boo();
var_dump($myObj->getTest());
如果您不想编写getter方法,则必须将属性的可访问性设置为public
才能在类范围之外访问它。
但我认为你在课堂上混淆了静态和非静态内容。
Btw类方法应该从小写开始。
答案 1 :(得分:0)
简短回答:你不能。
它是私人的,因此无法从课外访问。从内部你可以随时访问它,但你需要一个吸气剂将它带到公众面前。