所以我有一个与分数相关的php类,我做了一些计算,当它到来时 访问价值我 var_dump输出得到这个:
object(Fraction)#1 (2) {
["numerator":"Fraction":private]=>
int(1)
["denominator":"Fraction":private]=>
int(4)
}
和print_r得到这个:
Fraction Object(
[numerator:Fraction:private] => 1
[denominator:Fraction:private] => 4
)
我似乎无法访问任何对象分子,分母...... 任何访问它们的建议,我不熟悉OOP以及如何 访问对象。
提前谢谢。
答案 0 :(得分:1)
您只能在班级中访问班级的私人元素:http://php.net/manual/en/language.oop5.visibility.php
您可以公开numerator
和denominator
属性,也可以在类中为每个属性编写公共get
和set
方法(如果尚未实现,则为课程)。您可能希望使用此访问器方法的其他原因是为了检查是否为该属性分配了有效值,如果没有则抛出异常(您可以阅读以获取更多信息:Why use getters and setters?)。
从PHP 5.3开始(我相信)还有魔法__get
和__set
方法(比如python):
http://www.php.net/manual/en/language.oop5.overloading.php#object.get http://www.php.net/manual/en/language.oop5.overloading.php#object.set
答案 1 :(得分:1)
这不是stdClass
,而是Fraction
类;你得到这样的价值:
$fraction->getNumerator();
$fraction->getDenominator();
答案 2 :(得分:0)
您已将这些属性设为私有,因此它们仅对对象本身可见。如果您想直接访问它们,您需要将它们公开。