2012-02-02 3 views
4

私はちょうどPHPを研究して学び始めています。私はJavaでまともな背景を持っており、私はいくつかの相関関係を描こうとしています。 PHPで見たまったく馴染みのないシンボルの1つがオブジェクトアクセスセパレータですか? ->この例に見られるように: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
+0

私も混乱していた::演算子についてのお礼をありがとう –

+1

@ kmb385:名前は実際には最も混乱しています:Paamayim Nekudotayim ..私は初めて読むときに良いWTFをくれました。 –

+0

@Niklas Baumstarkわかりやすい名前です。 http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php –

1

PHPはその構文を借り::演算子は、クラスの静的メンバにアクセスするために使用されていることに注意してくださいJavaのようにC++から多くのオブジェクトのために。 C++は、オブジェクトポインタを参照するときにそのオブジェクトアクセサを使用します。非ポインタオブジェクト変数はドット表記を使用します。 Javaがその構文を借用しなかったのは、C++オブジェクトポインタのようなすべてのJavaオブジェクトがヒープ上に作成され、Javaでオブジェクトを作成する方法が1つしかないためです。