我試過在一個類中的私有數組訪問功能,但我有一個錯誤:爲什麼在一個類中沒有的功能私人陣列
解析錯誤:語法錯誤,意外‘(’,在CODE期待 ')' 第17個錯誤解析代碼
,這是我的代碼:
<?php
function foo_function() {
return 'foo_value';
}
class foo {
private $good_foo_var = array (
'foo_key' => 'anything'
);
private $bad_foo_var = array (
'foo_key' => foo_function()
);
public function get_the_foo() {
return $this -> foo_var['foo_key'];
}
}
我不知道爲什麼。在課外,這種任務是沒有問題的。
這同一個事實,即它們在類定義中定義的屬性在編譯時被實例化的事情。函數在編譯期間不可用,因此需要在運行時執行此類屬性的實例化。這就是爲什麼你不應該在定義中提供這樣的值,而是在構造函數中。 – Tularis
您的foo_function()在類文件中超出範圍。 –
範圍不是問題;在PHP中,所有函數都在全局範圍內,而不管它們在哪裏定義(除非在名稱空間中定義) – Tularis