當我使用 Composer 時,“轉到定義”效果很好。但它不適用于像 MySQLi 這樣的 PHP 核心擴展。Ubuntu 是我的操作系統,我已經為這些庫搜索了 PHP 文件,但只找到了它們的 .so 文件,也許這就是我無法“轉到定義”的原因。以上是我的 vscode PHP 定義。不知道“Sync: Ignored”是否是個問題,我沒有在 settings.json 中設置 PHP 二進制文件的路徑,但我嘗試添加它但沒有任何區別。這個怎么解決{"editor.detectIndentation": false,"C_Cpp.updateChannel": "Insiders","riot.base": "/home/fe/RIOT","riot.board": "esp8266-esp-12x","[lisp]": { "editor.tabSize": 2},"[html]": { "editor.tabSize": 2},"phpserver.browser": "firefox","typescript.disableAutomaticTypeAcquisition": true,"intelephense.stubs": [ "apache", "bcmath", "bz2", "calendar", "com_dotnet", "Core", "ctype", "curl", "date", "dba", "dom", "enchant", "exif", "FFI", "fileinfo", "filter", "fpm", "ftp", "gd", "gettext", "gmp", "hash", "iconv", "imap", "intl", "json", "ldap", "libxml", "mbstring", "meta", "oci8", "odbc", "openssl", "pcntl", "pcre", "PDO", "pdo_ibm", "pdo_mysql", "pdo_pgsql", "pdo_sqlite", "pgsql", "Phar", "posix", "pspell", "readline", "Reflection", "session", "shmop", "SimpleXML", "snmp", "soap", "sockets", "sodium", "SPL", "sqlite3", "standard", "superglobals", "sysvmsg", "sysvsem", "sysvshm", "tidy", "tokenizer", "xml", "xmlreader", "xmlrpc", "xmlwriter", "xsl", "Zend OPcache", "zip", "zlib", "mysqli"],"php.validate.executablePath": "/usr/bin/php"}
2 回答

慕運維8079593
TA貢獻1876條經驗 獲得超5個贊
你不能去標準函數的定義。PHP 不提供此類功能。
Intelephense 使用 PHPStorm 的存根來指定語法和 PHPDoc 注釋,但是去定義這些文件是沒有意義的。您需要的一切都在彈出窗口中顯示給您。因此,阻止轉到存根文件中的定義。
編譯 PHP 核心擴展。PHP 是一種解釋型語言,但可執行文件是經過編譯的 C 源代碼。PHP 核心擴展是用 C 編寫的,而不是用 PHP 編寫的。即使此類功能在 VS Code 中可用,也沒有理由轉到 C 源代碼中的定義。

胡說叔叔
TA貢獻1804條經驗 獲得超8個贊
重現步驟:
安裝 PHP Intellisense 擴展 在 VS Code 中打開包含 php 項目的文件夾 Ctrl + 單擊方法/函數引用,然后右鍵單擊它并選擇“轉到定義”
- 2 回答
- 0 關注
- 248 瀏覽
添加回答
舉報
0/150
提交
取消