首頁 >後端開發 >PHP問題 >php的存取控制符有哪些

php的存取控制符有哪些

青灯夜游
青灯夜游原創
2021-07-15 16:11:102429瀏覽

php的存取控制符有:1、public,將屬性或方法設定為可從任何地方存取;2、private,將屬性或方法設定為只能由自己的類別或物件存取; 3、protected,將屬性或方法設定為可由其類別或其後代存取。

php的存取控制符有哪些

本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦

存取控制修飾符清單

存取修飾符 含義
Public #將屬性或方法設定為可從任何地方存取
Private 將屬性或方法設定為只能由自己的類別或物件存取
Protected 將屬性或方法設定為可由其類別或其後代存取

public

公共屬性和方法可以從任何地方存取。

<?PHP
class Book {
        public $Name;
        public function say() {
                print "PHP!\n";
        }
}
class PythonBook extends Book {
        public function say() {
                print "Python!\n";
        }
}
$aBook = new PythonBook;
$aBook->Name = "Python";
print $aBook->Name;
?>

預設情況下,所有類別方法都是public的。

上面的程式碼產生以下結果。

php的存取控制符有哪些

private

私有屬性只能在自己的類別中存取。

<?PHP
class Book {
        private $Name;
        private $NameTag;
        public function setName($NewName) {
                // etc
        }
}
?>

子類別無法存取私有父方法和屬性。如果你想這樣做,你需要protected關鍵字。

Protected

受保護的屬性和方法可在其自己的類別和子類別中存取。考慮下面的程式碼:

<?PHP
class Book {
        public $Name;
        protected function getName() {
                return $this->Name;
        }
}
class Poodle extends Book {
        public function say() {
                print ""Book", says " . $this->getName();
        }
}
$aBook = new Poodle;
$aBook->Name = "PHP";
$aBook->say();
?>

上面的程式碼產生以下結果。

php的存取控制符有哪些

範例

下面的程式碼顯示如何使用Private成員隱藏資訊。

<?php
  class Widget
  {
    private $name;
    private $price;
    private $id;
    public function __construct($name, $price)
    {
      $this->name = $name;
      $this->price = floatval($price);
      $this->id = uniqid();
    }
    //checks if two widgets are the same
    public function equals($widget)
    {
      return(($this->name == $widget->name) AND
       ($this->price == $widget->price));
    }
  }
  $w1 = new Widget("Cog", 5.00);
  $w2 = new Widget("Cog", 5.00);
  $w3 = new Widget("Gear", 7.00);
  //TRUE
  if($w1->equals($w2))
  {
    print("w1 and w2 are the same<br>\n");
  }
  //FALSE
  if($w1->equals($w3))
  {
    print("w1 and w3 are the same<br>\n");
  }
  //FALSE, == includes id in comparison
  if($w1 == $w2)
  {
    print("w1 and w2 are the same<br>\n");
  }
?>

上面的程式碼產生以下結果。

php的存取控制符有哪些

推薦學習:《PHP影片教學

以上是php的存取控制符有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn