当我使用 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 关注
- 212 浏览
添加回答
举报
0/150
提交
取消