2011-08-08 5 views
4

가능한 중복 :
Reference - What does this symbol mean in PHP?개체 연산자 (->)

이것에 대해 너무 현학적 인 죄송합니다,하지만 난 개체 연산자에 대한 혼란 스러워요 (->) . 정확히 무엇을하고 어떻게 사용합니까 (오류 및 오용을 방지하기 위해) 사용합니까?

+5

[PHP에서이 기호의 의미는 무엇입니까?] (http://stackoverflow.com/questions/3737139/reference-what-this-symbol-mean-in-php) – Nightfirecat

답변

11

객체 연산자를 사용하려면 다음과 같이 생성하고 클래스를 인스턴스화해야합니다

class MyClass { 
    public $myVar; 

    public function myMethod() { 

    } 
} 

$instance = new MyClass(); 

$instance->myVar = "Hello World"; // Assign "Hello World" to "myVar" 
$instance->myMethod(); // Run "myMethod()" 

저 위의 코드를 설명하자

  1. 이 먼저와 클래스를 변수 "myVar"와 "myMethod"라는 이름의 메소드 (기본적으로 클래스 내의 함수)가있는 "MyClass"라는 이름이 작성됩니다.
  2. "$ instance"가 만들어지고 "MyClass"클래스의 새 인스턴스가 할당됩니다.
  3. $ instance-> myVar, 개체 연산자는 $ instance 개체 내에서 공용 인스턴스 변수에 액세스하고 "Hello World"값을 할당합니다. 비슷하게, "myMethod"는 $ instance 객체 내에서, 또한 객체 연산자를 사용하여 호출됩니다.

개체 운영자는 단순히 개체 내에서 "콘텐츠"에 액세스, 실행 또는 할당하는 PHP 방식입니다.

희망이 있습니다.

+0

여러분 모두, 고마워요 :) 그것은 매우 도움이되었습니다. –

5

그것과 같습니다. 다른 언어로. "->"당신이 방법 바운스() 공이라는 객체가있는 경우 예를 들면, 대부분의 언어에서 PHP에서

ball.bounce(); 

그것이

ball->bounce(); 
+0

그렇다면 => 비슷합니다 ->? –

+1

다른 언어들에서,'.'은 PHP에서'::'가하는 것을 할 것이기 때문에,이 비교는 혼동을 일으킬 수 있습니다. – rid

+0

@Max, no,'=>'는'->'과 아무 관련이 없습니다. 완전히 다른 것입니다. – rid

2

개체 운영자 인 것, 객체 범위 에 사용되어 객체의 메서드 및 속성에 액세스합니다. 의미는 연산자 오른쪽에있는 것은 연산자의 왼쪽에있는 변수에 인스턴스화 된 객체의 멤버입니다. 에서

: http://www.robert-gonzalez.com/2009/03/04/php-operators-double-and-single-arrow/

다른 언어 obj.meth()처럼,이를 위해 점 표기법을 사용합니다.