это ключевое слово в Java и в PHP - PullRequest
2 голосов
/ 04 декабря 2010

Сегодня я начал работать над небольшим Java-приложением. У меня есть некоторый опыт работы с PHP OOP, и в основном принцип один и тот же. Хотя я думал, что это должно применяться в обоих направлениях.

Но, например, ключевое слово this используется по-разному, как я понимаю. В Java

class Params
{
    public int x;
    public int y;

    public Params( int x, int y )
    {
        this.x = x;
        this.y = y;
    }

    public void display()
    {
        System.out.println( "x = " + x );
        System.out.println( "y = " + y );
    }
}

public class Main
{
    public static void main( String[] args )
    {
        Params param = new Params( 4, 5 );
        param.display();
    }
}

В то же время в PHP нужно сделать то же самое

<?php

class Params
{
    public $x;
    public $y;

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

    public void display()
    {
        echo "x = " . $this->x . "\n";
        echo "y = " . $this->y . "\n";
    }
}

class Main
{
    public function __construct()
    {
        $param = new Params( 4, 5 );
        $param->display();
    }
}

$main = new Main();

?>

Я просто хотел бы спросить, есть ли другие различия в ключевом слове this?

Поскольку я вижу, что в Java он используется для возврата экземпляра измененного объекта и, если я передаю аргумент с тем же именем, что и атрибут в классе. Затем, чтобы присвоить значение, мне нужно четко показать, что является аргументом и что является атрибутом класса. Например, как показано выше: this.x = x;

Ответы [ 3 ]

3 голосов
/ 04 декабря 2010

В Java вам не всегда нужно говорить, что «это» Java это поймет. Единственная ситуация, когда вам нужно это сказать, это когда локальная переменная имеет то же имя, что и переменная экземпляра, и в этом случае Java будет использовать локальную переменную, если вы не скажете this.var

Но вы все равно можете сказать this.var, даже если в Java это не нужно, если это поможет вам лучше понять код.

3 голосов
/ 04 декабря 2010

Да, ключевое слово "this" в php работает так же, как в java, и другой разницы нет

0 голосов
/ 04 декабря 2010

Java и PHP отличаются тем, как обрабатывают ключевое слово this.

Прочтите этот вопрос и ответьте , и это объясняет странное поведение этого ключевого слова в PHP.

...