PHP dockblock 是否有某种用于接口的@mixin?
Does PHP dockblock has some kind of @mixin for interfaces?
我的 Visual Studio 代码显示“未定义的方法”。我想知道是否可以通过某些 VSC 设置“修复”它,或者可能有 PHP 解决方案。我有这个
class A
{
public function someMethodA()
{
// ...
}
}
class B extends A implements Bint
{
public function someMethodB()
{
// ...
}
}
interface BInt
{
public function someMethodB();
}
class C
{
public function someMethodC(Bint $b)
{
// VSC shows indefined method
return $b->someMethodA();
}
}
我的界面没有someMethodA
,是否可以从Class A
“继承”它以消除“错误”?这个class来自一个包,它没有接口,我需要扩展它
getStatusCode()
存在,就是public,一切正常,但是Visual Studio代码无法理解
关注你的代码示例,而不是你的屏幕截图,你的 IDE 是正确的,你应该听听它告诉你什么。
方法someMethodC
的约定是它可以接受接口Bint
的任何实现。 保证你可以调用someMethodB
,但不保证其他任何东西。
如果方法传递了一个classA的实例,那么PHP将允许你调用someMethodA
,但是它可能会传递一些其他对象,例如:
class OnlyB implements Bint {
public function someMethodB() {
// ..
}
}
someMethodC的contract(signature)说可以传这个对象,但是调用的时候someMethodA
会报错
如果您希望该方法始终接收class A 的实例,请在签名中这样说:
public function someMethodC(A $b) {
return $b->someMethodA();
}
如果您希望它接受 Bint
的实现,那么您应该只调用该接口保证存在的方法。
我的 Visual Studio 代码显示“未定义的方法”。我想知道是否可以通过某些 VSC 设置“修复”它,或者可能有 PHP 解决方案。我有这个
class A
{
public function someMethodA()
{
// ...
}
}
class B extends A implements Bint
{
public function someMethodB()
{
// ...
}
}
interface BInt
{
public function someMethodB();
}
class C
{
public function someMethodC(Bint $b)
{
// VSC shows indefined method
return $b->someMethodA();
}
}
我的界面没有someMethodA
,是否可以从Class A
“继承”它以消除“错误”?这个class来自一个包,它没有接口,我需要扩展它
getStatusCode()
存在,就是public,一切正常,但是Visual Studio代码无法理解
关注你的代码示例,而不是你的屏幕截图,你的 IDE 是正确的,你应该听听它告诉你什么。
方法someMethodC
的约定是它可以接受接口Bint
的任何实现。 保证你可以调用someMethodB
,但不保证其他任何东西。
如果方法传递了一个classA的实例,那么PHP将允许你调用someMethodA
,但是它可能会传递一些其他对象,例如:
class OnlyB implements Bint {
public function someMethodB() {
// ..
}
}
someMethodC的contract(signature)说可以传这个对象,但是调用的时候someMethodA
会报错
如果您希望该方法始终接收class A 的实例,请在签名中这样说:
public function someMethodC(A $b) {
return $b->someMethodA();
}
如果您希望它接受 Bint
的实现,那么您应该只调用该接口保证存在的方法。