我有一个简单的类:
class Test
{
public static $myArray = array('a', 'b');
}
$test = new Test();
var_dump($test->myArray());
null
我希望array('a', 'b')
作为输出,但我得到的是空。为什么?
像这样访问它
<?php
class Test
{
public static $myArray = array('a', 'b');
}
$test = new Test();
var_dump($test::$myArray);
?>
看这里 PHP - 静态
你所做的静态不是一个函数。
此外,静态也用::
而不是->
调用,所以你应该这样做:
<?php
class Test
{
public static $myArray = array('a', 'b');
}
$test = new Test();
var_dump($test::$myArray);
这个类没有构造函数,所以做一个new Test();
你可以直接使用类名访问静态类是没有意义的。
<?php
class Test{
public static $myArray = array('a', 'b');
}
var_dump(Test::$myArray);
?>
为什么像动态方法一样调用数组?叫
Test::$myArray
您正在将其作为方法(函数)访问?
要接收其值,您必须将其称为静态变量
var_dump($test::myArray);
应该工作