drd0833
2017-09-18 21:31
采纳率: 100%
浏览 55
已采纳

方法中的类名和变量

I am reading about design patterns in PHP and I keep seeing the following syntax, for example

abstract class AbstractObserver {
    abstract function update(AbstractSubject $subject_in);
}

or

class PatternObserver extends AbstractObserver {
    public function __construct() {
    }
    public function update(AbstractSubject $subject) {   
    }
}

(code is part of this example)

where "AbstractSubject" is another abstract class.

I am used to defining methods like methodName($var), not including a class name in there, like methodName(className $var).

So, what actually the class name does in a method ? My best guess is that it passes something like a reference in that class? Can you explain to me what it actually does?

Thanks

图片转代码服务由CSDN问答提供 功能建议

我正在阅读PHP中的设计模式,我一直看到以下语法,例如 <前> 抽象类AbstractObserver { 抽象函数更新(AbstractSubject $ subject_in); }

 类PatternObserver扩展AbstractObserver {
公共函数__construct(){
} 
公共函数更新(AbstractSubject $ subject){
} 
} 
   
 
 

(代码是示例的一部分)

其中“AbstractSubject”是另一个抽象类。

我习惯于定义像 methodName($ var)这样的方法,不包括那里的类名,比如 methodName(className $ var)< /code>.

nn

那么,类名在一个方法中实际上做了什么? 我最好的猜测是,它在类中传递了类似的引用? 你能解释一下它究竟是做什么的吗?

谢谢

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doupao1530 2017-09-18 21:35
    已采纳

    It's called Type Hinting, since php 7 you can use scalar types to type hint parameters. (Some more)

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题