0

我正在调试一个网站,我不得不使用我目前还不习惯的类。

此站点中有此类处理 a$this但似乎没有任何变量传递给该类。上课是这样的

class myclass extends otherclass{

    function dosmthtomyclass{
        print_r($this);
    }
}

function dosmttomyclass打印一个数组。

在类中定义了一堆受保护的变量,但似乎没有为这些变量中的任何一个指定任何特定值,并且类中没有构造函数可以将值传递给。

我对必须从哪里传递变量感到非常困惑。这可能是非常基本的东西,但任何帮助将不胜感激。将变量传递给类的可能方法是什么

4

5 回答 5

1

$this指当前对象。根据PHP 文档

当从对象上下文中调用方法时,伪变量 $this 可用。$this 是对调用对象的引用(通常是方法所属的对象,但也可能是另一个对象,如果该方法是从辅助对象的上下文中静态调用的)。

这里有一些关于它的详细解释。这可以帮助你理解

PHP 中的变量 $this 是什么意思?

于 2012-07-24T08:47:01.603 回答
0

您需要阅读有关 OOP 的手册和/或教程。因为这是您了解 OOP 的唯一方法。从这个开始:http ://www.php.net/manual/en/language.oop5.basic.php

$this 指的是对象的当前实例。阅读 PHP+visibility 以了解为什么私有变量/方法对子类(扩展类)不可见。

祝你好运!

于 2012-07-24T08:47:09.087 回答
0

$this指类的当前对象。执行以下代码更清楚:

<?php
class abc {
    var $val = 3;

    function show()
    {
        print_r($this);
    }
}

$ob = new abc();
$ob->show();
于 2012-07-24T08:48:12.830 回答
0

这是因为 myclass 正在从 otherClass 获取数据......像这样:

<?php
class otherclass{
    public $name="Mike";
}

class myclass extends otherclass {
    function dosmthtomyclass() {
        print_r($this);
    }
}

$test=new myclass();
$test->dosmthtomyclass();  //prints "[name] => Mike"
于 2012-07-24T08:50:14.810 回答
0

也许在 php 中使用类的一些背景知识可以帮助你:

$this 用于引用类中的层次结构。例如,您可以有这样的课程:

class Phpclass{

    public function main(){
        echo "public function called<br/>";
        $this->helloworld();
    }

    private function helloworld(){
        echo "hello world";
    }

}

$phpclass=new Phpclass();
$phpclass->main();

这个类是一个对象的蓝图,它将用变量 $phpclass 进行实例化。由于 main() 是类中的公共函数,因此可以从类外部调用它。私有函数只能从类内部调用,因此 main() 函数使用 $this 作为类本身的标识符来调用自身内部的私有函数 helloworld()。如果没有 $this,对象就不会知道你指的是它自身内部的一个函数。

首先,上面会回显“public function called”,然后是“hello world”。

于 2012-07-24T08:51:41.347 回答