PHP 中的”->”是什么意思?


What does "->" do or mean in PHP?

我在很多地方都看到过这个,但从来没有理解它的含义或工作原理......
例如:

1
2
3
4
5
6
// Registry
$registry = new Registry();

// Loader
$loader = new Loader($registry);
$registry->set('load', $loader);

如果有人能详细说明这一点,我将非常感激......
提前谢谢...


调用类实例的方法或访问类实例的字段。您可能会发现此页面很有用。


它的用途是面向对象的编程。考虑以下几点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class myclass {

    public $x;

    private $y;

    public function get_y () {
        return $this->y;
    }

    public function __construct ($new_x, $new_y) {
        $this->x = (int)$new_x;
        $this->y = (int)$new_y;
    }

}

$myobject = new myclass(5, 8);

echo $myobject->x; // echoes '5';

echo"\
"
;

echo $myobject->get_y(); // echoes '8'

echo $myobject->y; // causes an error, because y is private

您会看到它是如何用于引用对象的属性(我们在类定义中指定的变量)以及对象的方法(函数)。在方法中使用它时,它可以指向任何属性和任何方法,但在类定义之外使用时,它只能指向声明为"public"的东西。


// 注册表
$registry = new Registry();

// 加载器
$loader = new Loader($registry);
$registry->set(\\'load\\', $loader);

这里 $registry->set(\\'load\\', $loader);是对函数 set(\\'load\\',$loader) 的调用,它在 Registry Class 中定义。

$registry 也是 Registry() 类的实例或对象。因此使用这个对象,注册类的 set() 函数被调用。


这是来自 C 的继承,通过指针访问成员(方法或属性)。

更多 C 运算符请查看维基百科