Php 为什么我的公共静态数组没有定义?
我有一个简单的课程:Php 为什么我的公共静态数组没有定义?,php,object,Php,Object,我有一个简单的课程: class Test { public static $myArray = array('a', 'b'); } $test = new Test(); var_dump($test->myArray()); 空的 我希望数组'a','b'作为输出,但是我得到了null。为什么?您是作为methodfunction访问它的? 要接收其值,必须将其作为静态变量调用 var_dump($test::myArray); 应该工作像这样访问它 <?php
class Test
{
public static $myArray = array('a', 'b');
}
$test = new Test();
var_dump($test->myArray());
空的
我希望数组'a','b'作为输出,但是我得到了null。为什么?您是作为methodfunction访问它的? 要接收其值,必须将其作为静态变量调用
var_dump($test::myArray);
应该工作像这样访问它
<?php
class Test
{
public static $myArray = array('a', 'b');
}
$test = new Test();
var_dump($test::$myArray);
?>
请参见此处所做的静态不是一个函数 还可以使用::而不是->调用静态。。所以你应该:
<?php
class Test
{
public static $myArray = array('a', 'b');
}
$test = new Test();
var_dump($test::$myArray);
为什么要调用类似数组的动态方法? 召唤 这个类没有构造函数,所以做一个新的测试没有意义;您可以使用类名直接访问静态类
$test->myArray是访问类实例的公共非静态属性的方法。要访问类的静态属性,您需要编写::$您甚至不需要从类测试实例化对象;您甚至不需要从类测试中实例化对象;该类没有构造函数,因为它是一个愚蠢的测试类。真正的类显然有它的构造函数。@LorenzMeyer下次你应该在问题中指定它。
Test::$myArray
<?php
class Test{
public static $myArray = array('a', 'b');
}
var_dump(Test::$myArray);
?>