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);

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

相关讨论

  • 根据您对 C 的熟悉程度,您可能会发现知道它与 C \'s -> 基本相同很有用
  • (旁注)解析器令牌的正确名称是 T_OBJECT_OPERATOR - php.net/manual/en/tokens.php
  • 另请参阅stackoverflow.com/questions/1671602/...

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

相关讨论

  • 它就像java中的registry.set(),是吗?
  • 你知道你会怎么称呼它。比如说,在说话的时候,如果我指的是 AsyncTask.onProgressUpdate 方法,我可以说,"只需调用 AsyncTask dot onProgressUpdate。但如果是 this->doSomething(),那么我将如何在口语中引用它演讲?
  • @Arunabh:我会说"在 this 上调用 doSomething"。如果您需要专门参考 ->,您可以说"箭头"(尽管这可能不是标准术语)。

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

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 运算符请查看维基百科


以上是PHP 中的”->”是什么意思?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>