PHP는 모두를 알고 있으며, 모든 것을 볼 수 있습니다. 적어도 시스템은 그렇지 않습니다.
가장 간단한 예는 자신의 컴퓨터와 운영 체제를 비교하는 것입니다. 파일을 "숨김"으로 표시하면 시스템이 사용자 및 다른 사용자로부터 파일을 숨기지 만, 전체 시간을 알 수 있습니다.
PHP는 스크립트 뒤에 숨겨진 컨트롤러입니다. 객체 간의 언어 사양 및 상호 작용 규칙을 적용합니다.
코드가 실제로하고있는 일은 PHP가 객체에 개인 속성이 있음을 표시하도록 요청하여 클래스/상속 액세스 외부에서 객체를 보호하도록하는 것입니다. 어떤 것 또는 누군가가 (당신을 포함해서) 그것을 접근하려고 할 때, PHP는 당신이 이미 그 속성을 private으로 표시하도록 요청했기 때문에 그렇게 할 수 없다고 친절하게 상기시킵니다.
"개인"이 비밀을 의미하지 않는다는 것을 이해하는 데 도움이됩니다! 리플렉션과 같은 것을 사용하면 모든 것을 액세스하고 변경할 수 있습니다.
개인, 공개, 상수 및 온 가족은 "부작용"을 피하고 개체 사용을 단순화하는 것에 관한 것입니다. 따라서 getName()을 사용하고 이름의 내부 구조에 대해 걱정할 필요가 없습니다/검색/생성), 비밀 및 보안 제공에 관한 것이 아닙니다.
당신이하지 말라는 것이 최선의 일을하지 않도록하고, 시스템에서 임의로 코드를 실행하는 악의적 인 스크립트 또는 사용자로부터 비밀을 보호하는 것이 아닙니다! PHP는 그로부터 보호를 제공하지 않습니다. 공개/개인/보호가 의미하는 것이 아닙니다. 일단 프로그래밍에 적용되지 않는 단어의 의미를 지나치게되면 이해하기가 더 쉽습니다!
개인 정보는 기본적으로 공개되지 않으므로 비공개로 선언 될 수 있습니다. 따라서 PHP가 알고있는 방법을 묻는 것은 특별히 비공개로 선언하지 않는 한별로 의미가 없지만 어떻게 든 보이게됩니다. "PHP는 어떻게 알습니까?"는 의미를 확인하기는 어렵습니다. PHP는 $가 변수의 시작임을 어떻게 알 수 있습니까? 그것이 언어가 해석하는 방식이기 때문입니다. 그것은 주어진 규칙을 따른다. –