php的静态方法调用问题

<?php
class Cat {
}
class Hypnotic_Cat extends Cat {
// Constructor
function Hypnotic_Cat( ) {
}
// This function must be called statically
public static function hypnotize( ) {
echo ("The cat was hypnotized.");
//return;
}
}
// Hypnotize all cats
//Hypnotic_Cat::hypnotize( );
$hypnotic_cat = new Hypnotic_Cat( );
// Does nothing
$hypnotic_cat->hypnotize( );
?>
为什么用->后可以有结果显示?静态方法不是只能用::来调用吗?

沧海一幻觉
浏览 1287回答 2
2回答

尚方宝剑之说

 静态方法:静态方法不需要所在类被实例化就可以直接使用。  使用的方式是类名::静态方法名;  静态方法的规则和静态变量是相同的。使用ststic关键字可以将方法标识为静态方法,通过类的名称和作用域限定操作符::可以访问静态方法。  静态方法和非静态方法之间有一个很重要的区别,就是在调用静态方法时,不需要创建类的实例。
打开App,查看更多内容
随时随地看视频慕课网APP