如何在类中的另一个函数中访问函数的变量?
问题描述:
我是OOP的新手,需要对一些概念进行一些说明。我有一个带有私有变量和两个简单函数的简单类。函数将私有变量的值设置为40.现在如何访问函数2中的变量值,使变量值为40?如何在类中的另一个函数中访问函数的变量?
class MyClass {
//declaring private variable:
private $var = '';
function MyfuncOne(){
$this->var = "40";
}
function MyfuncTwo(){
}
}
我如何获得的$this->var
这是40在MyfuncOne声明()的值?
答
在两个作用,你可以访问它想:
function MyFuncTwo() {
print $this -> var; // Just access it, its a member variable of the same class
}
变量是私有的,从这个类(无法访问)继承其他类,但与其他成员函数完全访问。在默认构造函数
编辑 如果你想将值设置为40,而不首先调用该函数,你可能需要一个默认的构造函数。
参见:http://php.net/manual/en/language.oop5.decon.php
简单:
class MyClass {
//declaring private variable:
private $var = '';
// This is the default constructor, it gets called when you create the object
function __construct() {
$this -> var = "40";
}
function MyfuncOne(){
$this->var = "40";
}
function MyfuncTwo(){
}
function get_var() {
return $this -> var;
}
}
然后,当你让你的对象时,它会被设置为 “40”:
$obj = new MyClass();
print "The object's var is " . $obj -> get_var(); // Notice we didn't have to call MyFuncOne(), it's just set.
三江源但如果我只是被访问$ this-> var在函数2中,我不会得到$ this-> var = 40 – Mark 2013-02-09 19:49:55
如果你先调用函数1,你会的。您可能正在寻找一个默认构造函数(http://php.net/manual/en/language.oop5.decon.php),它可以设置首次创建对象时的值。 – Julio 2013-02-09 19:50:45
谢谢你的帮助,但是有没有一种方法可以将$ this-> var的值设置为40而不必先调用函数呢? – Mark 2013-02-09 19:54:04