2017-05-15 1 views
-3

필자가 망각으로 떨어지기 전에, 필자는 나를 경험있는 프론트 엔드 개발자로서 PHP를 배우려고 노력하면서 더 나은 프로그래머가되도록 노력하겠습니다. 왜 다음 코드가 내 개인 변수를 여전히 인쇄하는지 이해하는 데 도움이 필요합니다. 상속 된 클래스를 통해 액세스하려고하면 오류가 발생한다고 생각했습니다.개인 변수가 예상대로 작동하지 않습니까?

<?php 
class Kopi 
{ 
private $name = 'Kopi'; 

    function __construct() 
    { 
     $this->getName();  
    } 
    function getName() 
    { 
     echo $this->name; 
    } 
} 

class Dog extends Kopi 
{ 
     function __construct() 
     { 
      Parent::getName(); 
     } 
} 

$kopi = new Dog; 
+0

'Parent :: getName(); '이것이 기본 클래스 (부모 인,이 경우'Kopi')를 호출한다는 것을 의미하지 않기 때문에'$ name'이'Kopi' **에서 접근 가능하기 때문에 여전히 유효합니다. –

+0

http://php.net/manual/en/language.oop5.basic.php 그리고 아직 보지 않았다면 ** "확장"** 아래를보십시오. –

+0

방금 ​​당신이 버그 보고서를 제출하지 않기를 바란다 :-) "extends"는 클래스를 복제한다. – DLastCodeBender

답변

0

재산, $name은 비공개입니다. 당신이 사용하고있는 방법은 그렇지 않습니다.

$name에 직접 액세스 할 수는 없지만 가져 오기 방법으로 값을 완벽하게 검색 할 수 있습니다.

http://php.net/manual/en/language.oop5.visibility.php

+0

건설적인 것에 감사드립니다! –

관련 문제