PHPクラス参照の問題

WBOY
WBOYオリジナル
2016-06-23 14:08:38914ブラウズ

クラス計算{
var $var1=10;
関数 add(){
return $this->var1+$this->
}
関数subtract( ){
return $this->var1-$this->var2;
}
関数 multiplication(){
return $this->var1*$this->var2;
}
}
クラス A{
function ex(){
return Calculate::add();
}
}
echo $a->ex();
0 が返されるのはなぜですか?


ディスカッションに返信(解決策)
クラスメソッドに静的にアクセスした場合、$thisが無いので0しか返せません

エラーが報告されなければ良いです

function ex(){
$ t = new Calculate;
return $t->add();
}
これは 12 を返します




モデレータが提案したように、これを行うこともできます
static $var1=10;静的 $var2= 2;

関数 add(){

return self::$var1+self::$var2; }

}
クラス A{
function ex(){
return Calculate::add();
}
} E $ a = new a;
echo $ a-& gt;


または、メソッドと属性を static として定義するために使用できます。
static public $var2 = 2;

public static function add(){
return self::$var1 + self::$var2;
}

return self::$var1 - self ::$var2;

}
public static function multiplication(){
return self::$var1 * self::$var2;
}
}
class A{
function ex(){
return Calculate::add(

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。