2012-02-02 66 views
4

我刚开始研究和学习PHP。我在Java中有一个体面的背景,我试图画出一些相关性。我在PHP中看到的一个完全陌生的符号是?对象访问分隔符? ->如图所示:PHP箭头,Java等效

<?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

不,没有其他用途......

http://ca.php.net/manual/en/language.oop5.basic.php

还要注意的是::运算符来访问类的静态成员

http://ca.php.net/manual/en/language.oop5.paamayim-nekudotayim.php

+0

感谢关于::操作符的额外注意事项,令我感到困惑 – 2012-02-02 13:25:30

+1

@ kmb385:这个名称真的是最让人困惑的:Paamayim Nekudotayim ..第一次读它时给了我一个很好的WTF。 – 2012-02-02 13:36:59

+0

@Niklas Baumstark哇,这是一个直观的名字。 http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php – 2012-02-02 13:39:38

1

PHP借用其语法对于C++和Java一样的对象。 C++在引用对象指针时使用该对象访问器;非指针对象变量使用点符号。 Java没有借用这种语法的原因是它没有必要,因为所有Java对象(如C++对象指针)都是在堆上创建的,所以只有一种方法可以在Java中创建对象。