我有一個簡單的類:爲什麼我的公共靜態數組未定義?
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