PHP箭头函数与Java的相对应关系

4

我刚开始研究和学习PHP。我在Java方面有一定的背景,正在尝试寻找一些联系。在PHP中,我看到了一个完全不熟悉的符号,那就是"对象访问分隔符"->,例如:

    <?php
    class SimpleClass
    {
            // property declaration
            public $var = 'a default value';

            // method declaration
            public function displayVar() {
                echo $this->var;
            }
    }
    ?>

根据我的研究,似乎对象访问分隔符在Java中等同于点表示法。例如:

public class SimpleClass
    {
    // property declaration
    public String val = "a default value";

    // method declaration
    public void displayVar() 
    {
        System.out.println(this.val);
    }
}

这个假设是安全的吗?这个操作符还有其他用途吗?

2个回答

2

谢谢你关于 :: 运算符的额外说明,这也让我感到困惑。 - Kevin Bowersox
1
@kmb385:它的名字确实是最令人困惑的:Paamayim Nekudotayim.. 第一次读到它的时候让我感到非常困惑。 - Niklas B.
@Niklas Baumstark 哇,这是一个直观的名称。http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php - Kevin Bowersox

1

PHP在对象语法方面借鉴了C++和Java的很多特点。C++在引用对象指针时使用该对象访问器(arrow operator);非指针对象变量则使用点符号。而Java没有采用这种语法是因为它是不必要的,因为所有的Java对象都像C++对象指针一样在堆上创建,因此在Java中只有一种创建对象的方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接