2013-02-09 161 views
0

我是OOP的新手,需要对一些概念进行一些说明。我有一个带有私有变量和两个简单​​函数的简单类。函数将私有变量的值设置为40.现在如何访问函数2中的变量值,使变量值为40?如何在类中的另一个函数中访问函数的变量?

class MyClass { 

    //declaring private variable: 
    private $var = ''; 

    function MyfuncOne(){ 
     $this->var = "40"; 
    } 

    function MyfuncTwo(){ 
    } 
} 

我如何获得的$this->var这是40在MyfuncOne声明()的值?

回答

2

在两个作用,你可以访问它想:

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. 
+0

三江源但如果我只是被访问$ this-> var在函数2中,我不会得到$ this-> var = 40 – Mark 2013-02-09 19:49:55

+0

如果你先调用函数1,你会的。您可能正在寻找一个默认构造函数(http://php.net/manual/en/language.oop5.decon.php),它可以设置首次创建对象时的值。 – Julio 2013-02-09 19:50:45

+0

谢谢你的帮助,但是有没有一种方法可以将$ this-> var的值设置为40而不必先调用函数呢? – Mark 2013-02-09 19:54:04

相关问题