0

我正在慢慢尝试理解面向对象的 PHP,我仍然在使用$this->找到自己的方式,但是除非它坚持我熟悉的领域,否则我会有点迷失。

我从我正在审查的一个项目中获得了这段代码片段,我想了解它,我只是想知道是否有人可以提供一些最小/基本代码来绕过(在顶部和底部)示例,以便成功运行它:

if ($this->isValid())
{
  print "Valid";
}
4

3 回答 3

5

该语句将在类内的方法内:

class MyClass
{
    public $valid = true;

    public function isValid()
    {
        return $this->valid;
    }

    public function MyMethod()
    {
        if ($this->isValid())
        {
            print "valid";
        }
    }
}

$myObj = new MyClass();
$myObj->MyMethod(); // prints "valid"
$myObj->valid = false;
$myObj->MyMethod(); // doesn't print "valid"

变量指的$this是已调用方法的对象的实例。

于 2013-02-07T05:43:34.230 回答
2

用于$this引用当前对象。换句话说,$this-> 用于非静态成员和isValid()类中的方法

class SimpleClass
{

    public $var = 'a default value';
             ^ 
             | refers variable   
             |
        $this->var; 

    public function isValid(){}
             ^ 
             | refers method 
             |
        $this->Isvalid(); 
   }
?>
于 2013-02-07T05:41:41.273 回答
1

$this关键字用于访问该类的当前实例,并且是该类 的isValid()函数。

于 2013-02-07T05:43:24.317 回答