>  기사  >  백엔드 개발  >  php5 카테고리_php 기술의 세 가지 데이터 유형 간의 차이점을 공유하세요.

php5 카테고리_php 기술의 세 가지 데이터 유형 간의 차이점을 공유하세요.

WBOY
WBOY원래의
2016-05-16 20:24:40887검색

공개: 공개 유형
하위 클래스에서는 self::var를 통해 공용 유형 메서드나 속성을 호출할 수 있으며 parent::method를 통해 상위 클래스의 메서드를 호출할 수 있습니다. 어떤 경우에는 $obj->var
을 통해 공용 유형 메서드나 속성을 호출할 수 있습니다.

보호: 보호 유형
하위 클래스에서는 self::var를 사용하여 보호 유형 메서드나 속성을 호출할 수 있으며 parent::method를 사용하여 상위 클래스의 메서드를 호출할 수 있습니다
인스턴스의 $obj->var를 통해 보호 유형의 메서드나 속성을 호출할 수 없습니다

비공개: 비공개 유형
이 유형의 속성 또는 메소드는 이 클래스에서만 사용할 수 있습니다. 전용 유형 속성 및 메소드는 이 클래스의 인스턴스, 하위 클래스 또는 하위 클래스의 인스턴스에서 호출할 수 없습니다.


2.나와 부모의 차이
a) 이 두 개체는 일반적으로 하위 클래스에서 사용됩니다. 이들 사이의 주요 차이점은 self는 부모 클래스에서 공개 또는 보호 속성을 호출할 수 있지만 부모는
을 호출할 수 없다는 것입니다.

b).self:: 현재 클래스의 정적 멤버(메서드 및 속성)를 나타냅니다. $this와 달리 $this는 현재 개체를 참조합니다.

첨부코드:


<&#63;php
/**
 * parent 只能调用父类中的公有或受保护的方法,不能调用父类中的属性
 * self  可以调用父类中除私有类型的方法和属性外的所有数据
 */
class User{
 public $name;
 private $passwd;
 protected $email; 
 public function __construct(){
  //print __CLASS__." ";
  $this->name= 'simple';
  $this->passwd='123456';
  $this->email = 'bjbs_270@163.com';
 } 
 public function show(){
  print "good ";
 } 
 public function inUserClassPublic() {
  print __CLASS__.'::'.__FUNCTION__." ";
 } 
 protected function inUserClassProtected(){
  print __CLASS__.'::'.__FUNCTION__." ";
 } 
 private function inUserClassPrivate(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
}

class simpleUser extends User { 
 public function __construct(){  
  //print __CLASS__." ";
  parent::__construct();
 }
 
 public function show(){
  print $this->name."//public ";  
  print $this->passwd."//private ";
  print $this->email."//protected ";
 }
 
 public function inSimpleUserClassPublic() {
  print __CLASS__.'::'.__FUNCTION__." ";
 }
 
 protected function inSimpleUserClassProtected(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
 
 private function inSimpleUserClassPrivate() {
  print __CLASS__.'::'.__FUNCTION__." ";
 }
}

class adminUser extends simpleUser {
 protected $admin_user;
 public function __construct(){
  //print __CLASS__." ";
  parent::__construct();
 }
 
 public function inAdminUserClassPublic(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
 
 protected function inAdminUserClassProtected(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
 
 private function inAdminUserClassPrivate(){
  print __CLASS__.'::'.__FUNCTION__." ";
 }
}

class administrator extends adminUser {
 public function __construct(){  
  parent::__construct();
 }
}

/**
 * 在类的实例中 只有公有属性和方法才可以通过实例化来调用
 */
$s = new administrator();
print '-------------------';
$s->show();
&#63;>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.