我有一个简单的类:为什么我的公共静态数组未定义?
class Test
{
public static $myArray = array('a', 'b');
}
$test = new Test();
var_dump($test->myArray());
null
我希望array('a', 'b')
作为输出,但我得到空。为什么?
我有一个简单的类:为什么我的公共静态数组未定义?
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 - STATIC
您正在以方法(函数)方式访问它?
接受它的价值,你必须把它作为静态变量
var_dump($test::myArray);
应该工作
'$ test-> myArray'是访问类实例的公共(非静态)属性的方式。要访问某个类的静态属性,您需要编写'
@Elias Van Ootegem感谢您的提示 – mwebber 2014-11-21 14:54:42
你为什么叫阵般的动感方法? 呼叫
Test::$myArray
出于无知:) – 2014-11-21 15:11:37
这个类有没有构造所以在做new Test();
您可以直接与类名访问静态类中没有点。
<?php
class Test{
public static $myArray = array('a', 'b');
}
var_dump(Test::$myArray);
?>
该类没有构造函数,因为它是一个愚蠢的测试类。真正的类显然是它的构造函数。 – 2014-11-21 15:11:06
@LorenzMeyer你应该在下一次你的问题中指定。 – rottenoats 2014-11-21 15:13:50
您甚至不需要实例化类Test中的对象;) – Havelock 2014-11-21 14:53:17
Thanks @ Havelock,我们每天都会学到一些新东西:-) – Pwner 2014-11-21 14:54:36