Rumah >pembangunan bahagian belakang >masalah PHP >Apakah kebenaran akses untuk kaedah kelas dalam php

Apakah kebenaran akses untuk kaedah kelas dalam php

青灯夜游
青灯夜游asal
2022-02-18 11:24:483801semak imbas

Terdapat tiga jenis kebenaran akses untuk kaedah kelas dalam PHP: 1. Jenis awam (awam), yang boleh digunakan di dalam kelas, dalam subkelas atau di luar kelas tanpa sekatan 2. Jenis yang dilindungi ( protected ); 3. Jenis persendirian (private) hanya boleh digunakan di dalam kelas dan tidak boleh digunakan di luar kelas atau dalam subkelas.

Apakah kebenaran akses untuk kaedah kelas dalam php

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

Ahli Kaedah kelas

Fungsi yang ditakrifkan dalam kelas dipanggil kaedah ahli. Satu-satunya perbezaan antara fungsi dan kaedah ahli ialah fungsi melaksanakan fungsi bebas, manakala kaedah ahli melaksanakan tingkah laku dalam kelas dan merupakan sebahagian daripada kelas.

Anda boleh mengisytiharkan berbilang kaedah ahli dalam kelas Pengisytiharan kaedah ahli adalah sama dengan pengisytiharan fungsi Walau bagaimanapun, apabila mengisytiharkan kaedah ahli, anda boleh menambah beberapa pengubah akses di hadapan kata kunci fungsi untuk mengawal Keizinan, seperti awam, peribadi, dilindungi, dsb.

Kebenaran akses kaedah

Terdapat tiga kebenaran akses:

awam: jenis awam, Boleh digunakan di dalam kelas, dalam subkelas atau di luar kelas, tanpa sekatan

Ciri: boleh panggil secara luaran, boleh panggil dalaman, boleh panggil subkelas

dalam subkelas Anda boleh memanggil kaedah atau sifat awam melalui diri: :var, dan parent::method memanggil kaedah kelas induk

Dalam keadaan, anda boleh memanggil kaedah atau sifat awam

melalui $obj->var

protected: protected type , boleh digunakan di dalam kelas dan dalam subkelas, tetapi tidak boleh digunakan di luar kelas

Ciri: tidak boleh dipanggil secara luaran, subkelas boleh dipanggil secara dalaman Anda boleh memanggil

dalam subkelas untuk memanggil kaedah atau atribut yang dilindungi melalui self::var, parent::method untuk memanggil kaedah kelas induk

tetapi tidak melalui $obj->var dalam contoh Memanggil kaedah atau sifat jenis dilindungi

peribadi: jenis peribadi, hanya boleh digunakan di dalam kelas, bukan di luar kelas atau dalam subkelas.

Ciri: Tidak boleh dipanggil secara luaran, boleh dipanggil secara dalaman, tidak boleh dipanggil oleh subkelas

Atribut atau kaedah jenis ini hanya boleh digunakan dalam kelas ini, dalam keadaan dan subkelas kelas ini, Jenis peribadi atribut dan kaedah tidak boleh dipanggil dalam contoh subkelas

Nota:

Apabila mencipta kaedah, jika ia tidak dinyatakan, ia akan lalai kepada awam.

<?php
 class EMBA_student  // 声明EMBA学生类
      {
          //用private来定义私有类的属性
          private $no; //序号
          private $name; // 姓名
          private $gender; //性别
          private $age; //年龄

          //方法
          //方法1 ,私有方法,输出年龄

       private   function show_age()
          {

  echo"我的年龄是:$this->age<br />";

              }
//方法2,公有方法,回答年龄
public function ask_age()
{
    $this->show_age();
    }
//方法3,设置数据
function set_data($arr){
    $this->no=$arr["no"];
        $this->name=$arr["name"];
            $this->gender=$arr["gender"];
                $this->age=$arr["age"];
    }
          }

 //实例化一个对象
 $s=new EMBA_student;
 $arr=array("no"=>"1","name"=>"Qian Zhang","gender"=>"Female","age"=>"33","department"=>"商业营销");
 $s->set_data($arr);

//echo $s->age;//Fatal error: Cannot access private property EMBA_student::$age in C:\xampp\htdocs\v\v.php on line 47
//$s->show_age(); //Fatal error: Call to private method EMBA_student::show_age() from context &#39;&#39; in C:\xampp\htdocs\v\v.php on line 48

 $s->ask_age();

  ?>

Hasil:

我的年龄是:33

Tambahan: Perbezaan antara diri dan ibu bapa

a). objek. Perbezaan utama mereka ialah diri boleh memanggil harta awam atau dilindungi dalam kelas induk, tetapi ibu bapa tidak boleh memanggil

b).self:: Ia mewakili ahli statik (kaedah dan sifat) kelas semasa $ ini berbeza, $ini merujuk kepada objek semasa

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah kebenaran akses untuk kaedah kelas dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn