gpt4 book ai didi

php - 扩展 PHP 的类型提示

转载 作者:行者123 更新时间:2023-12-01 16:30:06 29 4
gpt4 key购买 nike

是否可以使用 Netbeans 中的另一个文档标记来扩展类型提示?

我正在寻找一种使用 @scope 标记扩展类型提示的方法,该标记允许包含的文件访问对象范围。

示例:

file: template.php
<?php /* @var $this MyObject */

这仅允许公共(public)变量和方法的类型提示。我希望做的是使用 @scope 标签扩展类型提示,使其能够访问 MyObject 范围:

file: template.php
<?php /* @scope MyObject */

这将使文件内容的行为就像在 MyObject 范围内一样,并且 $this 会提示私有(private)方法。

现在,我没有 Netbeans 平台的开发经验,但我有 Java 经验。如果我想实现这一目标,我该从哪里开始?

希望这个问题不是太弱。

最佳答案

过去(NetBeans 的旧版本),类型提示显示类(正在使用其对象)的所有方法,即所有公共(public)、 protected 、私有(private)甚至静态方法。现在,在 NetBeans 的新版本中,此错误已得到修复,并且当对对象进行类型提示时,仅对可访问的方法/属性进行类型提示。

这只是因为您的模板无法访问/调用类的私有(private)属性/方法,并且如果您有一个对象(类的实例),您不应该能够访问/调用它的类的静态属性/方法。

如果您愿意在类内部进行类型提示,则同样适用 - 现在类型提示列出了 $this->| ( | 是光标),而静态属性和方法仍然没有列出。另一方面,如果您在 MyClass::| 上进行类型提示,现在仅列出静态属性/方法,并且在 MyClass 类内部时,所有公共(public)属性/方法都会被列出。 , protected 和公共(public)的被列出,而当从外部访问时,私有(private)的(非常正确)在列表中丢失。

因此,您请求的功能是错误的,并且否定了正确的封装原则。

关于php - 扩展 PHP 的类型提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14255474/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com