<code>class a{ static $config = [ 'id' => 1, 'status' => ['status1'=>1,'status2'=>2] ]; } </code>
$s = new a();
echo s::config->id;
die;
怎麼讓s::$config->可以自動補全出來id和status.....
<code>class a{ static $config = [ 'id' => 1, 'status' => ['status1'=>1,'status2'=>2] ]; } </code>
$s = new a();
echo s::config->id;
die;
怎麼讓s::$config->可以自動補全出來id和status.....
當然可以做到,可以藉助phpdoc註解、一個實作了ArrayAccess介面且帶有你需要的被提示的屬性的輔助類,就可以了。
原理其實就是讓ide誤認為這個陣列是個類別進而自動提示補全屬性名,而ArrayAccess具有把類別物件當作陣列操作的「黑」魔法。
ide的程式碼提示都是在載入工程的時候產生索引,然後在輸入相關字元的時候出發檢索完成提示,數組這種如果也要提示,可能性極小,這種耗費資源太多,而且都是局部的,不停的檢索。不過如果用sublime它會提示最近用的詞,這或許可以滿足一點你的需求
phpstorm可以自動提示類別成員變量,至於提示數組類型成員變量的元素,暫時未涉及
一般的IDE開發工具都會提示類別成員變數和類別成員方法名稱,不過你說的提示我暫時還沒找到。
基本上不能,簡單來說這些數組是在運行時去創建的,語法解析現在沒有做到這程度,而且也沒有必要。
例如:
我要在程式碼裡把陣列裡某個key給刪了,提示怎麼辦?
這種陣列結構層面上的補全註釋和補全還不如研究研究phpdoc來得實在
ArrayAccess
新版一點的phpstorm已經支持了,今天同事說他的有提示啊,我的const array 聲明直接就報紅了。 。 。 。 他的phpstorm就支持。 。 。 。 ! !
PHPDoc +1 可以參考這篇http://www.07net01.com/progra...
有些IDE是可以實現的 安裝對應的插件也可以 建議用sublime