Heim Backend-Entwicklung PHP-Problem Was sind die Zugriffsberechtigungen für Klassenmethoden in PHP?

Was sind die Zugriffsberechtigungen für Klassenmethoden in PHP?

Feb 18, 2022 am 11:24 AM
php 方法 访问权限

Es gibt drei Arten von Zugriffsberechtigungen für Klassenmethoden in PHP: 1. Öffentlicher Typ (öffentlich), der innerhalb der Klasse, in Unterklassen oder außerhalb der Klasse ohne Einschränkungen verwendet werden kann; 2. Geschützter Typ (geschützt 3). Der private Typ (privat) kann nur innerhalb der Klasse verwendet werden und kann nicht außerhalb der Klasse oder in Unterklassen verwendet werden.

Was sind die Zugriffsberechtigungen für Klassenmethoden in PHP?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP Version 7.1, DELL G3-Computer

Member-Methoden in einer Klasse

In einer Klasse definierte Funktionen werden Member-Methoden genannt. Der einzige Unterschied zwischen Funktionen und Mitgliedsmethoden besteht darin, dass Funktionen eine unabhängige Funktion implementieren, während Mitgliedsmethoden ein Verhalten in der Klasse implementieren und Teil der Klasse sind.

Sie können mehrere Mitgliedsmethoden in einer Klasse deklarieren. Die Deklaration von Mitgliedsmethoden ist genau die gleiche wie die Deklaration von Funktionen. Bei der Deklaration von Mitgliedsmethoden können Sie jedoch einige Zugriffsrechtemodifikatoren vor dem Funktionsschlüsselwort hinzufügen, um den Zugriff zu steuern Rechte wie öffentlich, privat, geschützt usw.

Methodenzugriffsrechte

Es gibt drei Zugriffsrechte:

öffentlich: öffentlicher Typ, kann innerhalb der Klasse, in Unterklassen oder außerhalb der Klasse ohne Einschränkungen verwendet werden

Eigenschaften: Extern aufrufbar, intern aufrufbar , Unterklasse aufrufbar

In der Unterklasse können Sie öffentliche Methoden oder Eigenschaften über self::var aufrufen, parent::method kann die Methode der übergeordneten Klasse aufrufen

In der Instanz können Sie $obj- >var übergeben, um Methoden aufzurufen oder Eigenschaften des öffentlichen Typs

geschützt: geschützter Typ, kann innerhalb der Klasse und Unterklassen verwendet werden, kann jedoch nicht außerhalb der Klasse verwendet werden

Eigenschaften: nicht extern aufrufbar, intern aufrufbar. Unterklassen können

In Unterklassen geschützte Methoden aufrufen oder Eigenschaften können über self::var aufgerufen werden, und parent::method kann übergeordnete Klassenmethoden aufrufen

In einigen Fällen können geschützte Typmethoden oder Methoden nicht über $obj->var aufgerufen werden ,

kann nur innerhalb der Klasse verwendet werden und kann nicht außerhalb der Klasse oder in Unterklassen verwendet werden.

Eigenschaften: Nicht extern aufrufbar, intern aufrufbar, nicht durch Unterklassen aufrufbar

Attribute oder Methoden dieses Typs können nur in dieser Klasse verwendet werden und können nicht in Instanzen dieser Klasse, Unterklassen oder Instanzen von Attributen privater Unterklassen aufgerufen werden und Methoden

Erklärung:

Wenn beim Erstellen einer Methode diese nicht angegeben wird, wird sie standardmäßig auf öffentlich gesetzt.

<?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 '' in C:\xampp\htdocs\v\v.php on line 48

 $s->ask_age();

  ?>
Nach dem Login kopieren

Ergebnis:

我的年龄是:33
Nach dem Login kopieren

Ergänzung: Der Unterschied zwischen Selbst und Eltern

a). Diese beiden Objekte werden häufig in Unterklassen verwendet. Ihr Hauptunterschied besteht darin, dass self öffentliche oder geschützte Eigenschaften in der übergeordneten Klasse aufrufen kann, parent jedoch nicht

b).self:: Es repräsentiert die statischen Mitglieder (Methoden und Eigenschaften) der aktuellen Klasse, im Gegensatz zu $this, $ this bezieht sich auf das aktuelle Objekt

Empfohlenes Lernen: „

PHP Video Tutorial

Das obige ist der detaillierte Inhalt vonWas sind die Zugriffsberechtigungen für Klassenmethoden in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

CakePHP Datum und Uhrzeit

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

CakePHP-Projektkonfiguration

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

CakePHP-Datei hochladen

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

CakePHP-Routing

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

Besprechen Sie CakePHP

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP-Kurzanleitung

See all articles