Heim > php教程 > php手册 > PHP5-Autorisierungsprogrammierung, Lesestudiennotizen mit E-Book-Download_php-Grundlagen

PHP5-Autorisierungsprogrammierung, Lesestudiennotizen mit E-Book-Download_php-Grundlagen

WBOY
Freigeben: 2016-05-16 09:00:26
Original
2174 Leute haben es durchsucht

PHP 5 Power Programming PDF-Download-Adresse /books/28207.html

In PHP4 wird __construct() nicht als Name des Konstruktors verwendet, und die Klasse muss verwendet werden Der Name definiert eine Methode, genau wie in C++.
In PHP5 wird eine neue einheitliche Konstruktor-Benennungsmethode verwendet: __construct() Natürlich ist es auch möglich, Klassennamen zu verwenden.
Wenn Sie jedoch beide gleichzeitig verwenden, verwendet das System standardmäßig __construct().

Code kopieren Der Code lautet wie folgt:

Klassenperson {
//Methode in PHP4
öffentliche Funktion Person(){
echo „Methode in PHP4“
}
//Methode empfohlen in PHP5
öffentliche Funktion __construct(){
echo „Empfohlene Methode für PHP5“;
public function say(){
}
$p1=new Person();
?> 🎜>

Sie können im Konstruktor keinen Wert zurückgeben, daher besteht die häufigste Methode zum Generieren eines Fehlers im Konstruktor darin, eine Ausnahme auszulösen.
Der Code lautet wie folgt:



Code kopierenDer Code lautet wie folgt: class Person{
private $_age
public function __construct($age){
try {
if ($age<120){
$this- >_age=$age ;
}else {
throw new Exception("Das von Ihnen eingegebene Alter ist zu alt");
}catch (Exception $e){
echo $e->getMessage( );
}
}
$p1=new Person(121);



Zugriffskontrolle

Zugriffsschutz auf Objektattribute ist ein Schlüsselparadigma von OOP
Öffentlich: Zugriff überall möglich
Geschützt: Auf Klassenmitglieder kann über Methoden innerhalb des Objekts durch Unterklassen und übergeordnete Klassen von zugegriffen werden die Klasse, in der sie sich befinden
Privat: Auf Klassenmitglieder kann nur über Methoden innerhalb des Objekts der Klasse, in der sie sich befinden, zugegriffen werden, nicht jedoch über Mitglieder der geerbten Klasse. Da private Mitglieder nicht vererbt werden, können zwei verwandte Klassen eine private Variable mit demselben Namen deklarieren. Das heißt, beide Klassen können nur ihre eigenen privaten Eigenschaften sehen und es besteht keine Beziehung zwischen privaten Mitgliedern. Beispiel:




Code kopieren

Der Code lautet wie folgt: /*** MyClass definieren */
class MyClass
{
public $public = 'Public'
protected $protected = 'Protected'; Privat';
function printHello()
{
echo $this->public;
echo $this->private; }
}
$obj = new MyClass();
echo $obj->public; // Diese Zeile kann normal ausgeführt werden
echo $obj->protected; erzeugt einen schwerwiegenden Fehler
echo $obj->private // Diese Zeile erzeugt auch einen schwerwiegenden Fehler
$obj->printHello(/) Ausgabe öffentlich, geschützt und privat
/ **
* Definiere MyClass2
*/
class MyClass2 erweitert MyClass
{
// Öffentlich und geschützt können neu definiert werden, aber privat kann nicht
geschützt werden $protected = 'Protected2';
function printHello ( )
{
echo $this->public;
echo $this->private; $ obj2 = new MyClass2();
echo $obj->public; // Diese Zeile kann normal ausgeführt werden
echo $obj2->private; // private ist nicht definiert
echo $obj2 -> ;protected; // Diese Zeile erzeugt einen schwerwiegenden Fehler
$obj2->printHello(); // Ausgabe öffentlich, geschützt2, aber nicht privat


Hinweis: in der Klasse Methoden müssen mit den Schlüsselwörtern public, protected oder private definiert werden. Wenn diese Schlüsselwörter nicht festgelegt sind, wird die Methode auf die Standard-Öffentlichkeit festgelegt.

Statische Methode

Die statische Methode kann über die Methode „class name::static“ aufgerufen werden, ohne eine Objektinstanz zu erstellen, oder sie kann in einer Objektinstanz über die Methode „$this->static“ oder aufgerufen werden self: :Statische aufzurufende Methode.




Code kopieren

Der Code lautet wie folgt:

Klasse Foo
{
public static $my_static = 'foo';
public static function staticValue() { return self::$my_static;//Um auf statische Mitglieder in einer Klasse zuzugreifen, verwenden Sie das Schlüsselwort self } } $obj=new Foo(); echo $obj->staticValue();//Methode 1echo Foo::staticValue();//Methode 2? >
Objekt klonen
Wenn in PHP4 ein neues Objekt zurückgegeben wird, wird das Objekt selbst zurückgegeben.
Wenn ein Objekt neu ist, wird das Objekt zurückgegeben, auf das gezeigt wird. Handle“
Das bedeutet, dass in PHP5 beim Zuweisen einer Objektinstanz ($obj1) zu einer anderen Variablen ($obj2) beide Objekte auf denselben Speicherbereich verweisen.
Zum Beispiel:
Code kopieren Der Code lautet wie folgt:

class test{
public $str;}
$obj1=new test();
$obj2= $ obj1;
$obj2->str="obj2";
echo $obj1->str;//wird „obj1“ ausgeben


Weil $ obj1 und $ obj2 zeigen auf denselben Speicherbereich. Wenn also ein Objekt zum Ändern des Werts einer Mitgliedsvariablen verwendet wird, wirkt sich dies auf das andere Objekt aus.
Aber manchmal müssen wir eine Kopie eines Objekts erstellen (zwei unabhängige Speicherbereiche). Zu diesem Zeitpunkt können Sie den Sprachbefehl clone verwenden




Code kopierenpublic $str ;
}
$obj1=new test();
$obj1->str="
$obj2= clone $obj1; "obj2";
echo $obj1->str;//wird "obj2" ausgeben



parent:: und self::

self:: zeigt auf die aktuelle Klasse und wird normalerweise für den Zugriff auf statische Elemente, Methoden und Konstanten verwendet.
parent:: zeigt auf die übergeordnete Klasse und wird häufig zum Aufrufen des Konstruktors und der Methoden der übergeordneten Klasse verwendet Klasse und kann auch verwendet werden, um auf Mitglieder der übergeordneten Klasse und Konstanten zuzugreifen.
Hinweis: Sie sollten parent:: anstelle eines bestimmten Namens der übergeordneten Klasse verwenden, da Sie so die Hierarchie Ihrer Klasse einfach ändern können.
Beispiel:


Code kopieren

Der Code lautet wie folgt: class Father{ public function __construct(){ echo „Rufen Sie den Konstruktor der übergeordneten Klasse auf
“;
}
}
class Son erweitert Father {
public function __construct(){
parent::__construct();//Methode 1
// Vater::__construct();//Methode 2
echo "Rufen Sie den Konstruktor der Unterklasse auf";
}
}
$son=new Son();
?>


Ergebnis:
Aufruf des Konstruktors der übergeordneten Klasse
Aufruf Für die Funktion
wird aus den oben genannten Gründen der Konstruktor der Unterklasse Methode 1 empfohlen.
Instanz der Instanz




Code kopieren
Der Code lautet wie folgt: < ;?php class Rechteck { public $name=__CLASS__ }
class Square erweitert Rechteck {
public $name=__CLASS__; Circle{
public $name=__CLASS__;
}
function checkIfRectangle($shape){
if ($shape Instanz von Rechteck ){
echo $shape->name; }else {
echo „Dieses Objekt ist keine Instanz der Rechteckklasse“; Circle());/ /Ausgabe: Das Objekt ist keine Instanz der Rechteckklasse
?>


Hinweis: __CLASS__ ist eine spezielle Konstante, die zum Speichern des Namens der aktuellen Klasse verwendet wird
Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage