2017-11-23 16 views
0

나는 Virtuemart의 소스에서이 줄을 이해하려고 노력하고 있어요 :이 코드는 클래스 변수에서 클래스 메서드를 호출합니까?

<?php 
echo $product->images[0]->displayMediaThumb('class="browseProductImage" style="border-radius: 10px; border: 2px solid #8C9622"', false); 
?> 

그것은 방법 (객체/배열 $product->images[0]이 경우) 클래스 속성에 의해 호출처럼 보이는 그 속성으로 전달된다 메소드의 파라미터 그러나 PHP 핸드북에서이 예제를 찾을 수 없습니다. 누군가가 설명하거나 관련 문서를 가르쳐 주시겠습니까?

답변

1

하자. $product은 분명히 하나의 대상입니다. ->images[0]은 해당 개체의 속성을 참조합니다. 특히 그것은 배열 인 속성의 첫 번째 요소입니다. ->displayMediaThumb(...)이 개체의 메서드를 호출 중입니다. 따라서 images은 객체의 배열이어야합니다.

"해당 속성이 메서드에 매개 변수로 전달되었습니다."라는 오류가 잘못되었습니다. displayMediaThumb$product$images 내의 첫 번째 개체에 대해 호출되고 있습니다.

+0

그렇다면이 방법으로 displayMediaThumb() 메서드의 범위가 이미지 [0] 속성만으로 축소된다는 것을 올바르게 이해합니까? – Lexib0y

+0

또는 감소하지 않을 수도 있지만 범위를 결정합니까? – Lexib0y

+0

@ Lexib0y 질문을 이해하지 못합니다. 'displayMediaThumb'의 범위는 그것을 정의하는 클래스 외부에서 호출되기 때문에 public이어야합니다. 어쩌면 이미지 객체의 어떤 인스턴스를 호출했는지 알 수 있을까요? 이것은'[0]'이 배열에서 최상위 객체를 꺼내기 때문에 처음 일 것입니다. –