Maison php教程 php手册 Notes d'étude de lecture de programmation faisant autorité PHP5 avec les bases de download_php du livre électronique

Notes d'étude de lecture de programmation faisant autorité PHP5 avec les bases de download_php du livre électronique

May 16, 2016 am 09:00 AM
php5

Adresse de téléchargement PDF PHP 5 Power Programming /books/28207.html

En PHP4, __construct() n'est pas utilisé comme nom du constructeur, et la classe doit être utilisée Le nom définit une méthode, tout comme en C++.
En PHP5, une nouvelle méthode de nommage unifiée des constructeurs est utilisée : __construct() Bien entendu, il est également possible d'utiliser des noms de classes.
Cependant, si vous utilisez les deux en même temps, le système utilisera __construct() par défaut.

Copier le code Le code est le suivant :

<?php
class Person {
//Méthode en PHP4
public function Person(){
echo "Méthode en PHP4"
}
//Méthode recommandée en PHP5
public function __construct(){;
echo "Méthode recommandée pour PHP5";
}
public function say(){
}
}
$p1=new Person(); 🎜>

Vous ne pouvez pas renvoyer de valeur dans le constructeur, donc le moyen le plus courant de générer une erreur à partir du constructeur est de lever une exception.
Le code est le suivant :


<?php
class Person{
private $_age;
public function __construct($age){
try {
if ($age<120){
$this- >_age=$age ;
}else {
throw new Exception("L'âge que vous avez entré est trop ancien");
}
}catch (Exception $e){
echo $e->getMessage( );
}
}
}
$p1=nouvelle personne (121);> >Contrôle d'accès

La protection de l'accès aux attributs d'objet est un paradigme clé de la POO
Public : accessible n'importe où
Protégé : les membres de la classe sont accessibles à partir des méthodes à l'intérieur de l'objet par les sous-classes et les classes parentes de la classe dans laquelle ils se trouvent
Privé : les membres de la classe ne sont accessibles que par les méthodes de l'objet de la classe dans laquelle ils se trouvent, mais ne sont pas accessibles depuis les membres de la classe héritée. Étant donné que les membres privés ne seront pas hérités, deux classes liées peuvent déclarer une variable privée portant le même nom.
C'est-à-dire que les deux classes ne peuvent voir que leurs propres propriétés privées et qu'il n'y a aucune relation entre les membres privés. Exemple :



Copier le code


Le code est le suivant :{
public $public = 'Public';
protected $protected = 'Protégé'
private $private = ' Privé';
function printHello()
{
echo $this->public
echo $this->protected; }
}
$obj = new MyClass();
echo $obj->public; // Cette ligne peut être exécutée normalement
echo $obj->protected; générera une erreur fatale
echo $obj->private; // Cette ligne générera également une erreur fatale
$obj->printHello(); // Sortie publique, protégée et privée
/ **
* Définir MaClasse2
*/
class MyClass2 extends MyClass
{
// Public et protected peuvent être redéfinis, mais privé ne peut pas être
protected $protected = 'Protected2'
function printHello; ( )
{
echo $this->public
echo $this->protected
echo $this->private; $ obj2 = new MyClass2();
echo $obj->public; // Cette ligne peut être exécutée normalement
echo $obj2->private; // private n'est pas défini
echo $obj2 -&gt ;protected; // Cette ligne générera une erreur fatale
$obj2->printHello(); // Sortie Public, Protected2, mais pas Private


Remarque : dans la classe Les méthodes doivent être définies à l'aide des mots-clés public, protected ou private. Si ces mots-clés ne sont pas définis, la méthode sera définie sur le public par défaut.

Méthode statique

La méthode statique peut être appelée via le nom de classe :: méthode statique sans créer d'instance d'objet, ou elle peut être appelée dans une instance d'objet via la méthode $this->static ou self: :Méthode statique à appeler.




Copier le code

Le code est le suivant :
<?php
class Foo
{
public static $my_static = 'foo'; public static function staticValue() { return self::$my_static;//Pour accéder aux membres statiques d'une classe, utilisez le mot-clé self } } $obj=new Foo(); echo $obj->staticValue();//Méthode 1echo Foo::staticValue();//Méthode 2
?
Clone object
PHP4에서는 new 객체가 반환되면 객체 자체가 반환됩니다.
PHP5에서는 객체가 new이면 가리키는 객체가 반환됩니다. Handle"
이는 PHP5에서 객체 인스턴스($obj1)를 다른 변수($obj2)에 할당할 때 두 객체 모두 동일한 메모리 영역을 가리킨다는 의미입니다.
예:
코드 복사 코드는 다음과 같습니다.

<? php
클래스 테스트{
공개 $str;
}
$obj1=new test()
$obj1->str="obj1"; obj1;
$obj2->str="obj2";
echo $obj1->str;//"obj1"을 출력합니다
?> $obj1과 $obj2는 동일한 메모리 영역을 가리키므로 어떤 개체를 사용하여 멤버 변수의 값을 수정하면 다른 개체에 영향을 미치게 됩니다.
그러나 때로는 객체의 복사본(두 개의 독립된 메모리 영역)을 만들어야 할 경우 언어 명령 clone을 사용할 수 있습니다.
아래 예를 참조하세요.




코드 복사public $str ;
}
$obj1=new test();
$obj1->str="obj1";
$obj2= 클론
$obj2->str= "obj2";
echo $obj1->str;//"obj2"를 출력합니다
?>



parent:::
self: : 현재 클래스를 가리키며 일반적으로 정적 멤버, 메서드 및 상수에 액세스하는 데 사용됩니다.
parent:: 상위 클래스를 가리키며 상위 클래스의 생성자와 메서드를 호출하는 데 자주 사용됩니다. 클래스이며 상위 클래스 및 상수의 멤버에 액세스하는 데에도 사용할 수 있습니다 참고: 상위 클래스의 특정 이름 대신 parent::를 사용해야 합니다. 이렇게 하면 클래스 계층 구조를 쉽게 변경할 수 있기 때문입니다. 예:




코드 복사public function __construct(){
echo "부모 클래스의 생성자 호출<br>"
}
}
class Son은 Father를 확장합니다.
public function __construct(){
parent::__construct();//방법 1
// Father::__construct();//방법 2
echo "하위 클래스의 생성자 호출";
}
}
$son=new Son();
?>


결과:
상위 클래스의 생성자 호출
위에서 언급한 이유로
함수에는 하위 클래스 메서드 1의 생성자를 사용하는 것이 좋습니다.

instanceofinstance



코드 복사
코드는 다음과 같습니다. &lt ;?php class Rectangle {
public $name=__CLASS__
}
class Square는 Rectangle {
public $name=__CLASS__; Circle{
public $name=__CLASS__;
}
function checkIfRectangle($shape){
if ($shape instanceof Rectangle ){
echo $shape->name; }else {
echo "이 개체는 Rectangle 클래스의 인스턴스가 아닙니다.";
}
}
checkIfRectangle(new Square());//출력: Square
checkIfRectangle(new Circle());/ /출력: 개체가 Rectangle 클래스의 인스턴스가 아닙니다
?>


참고: __CLASS__는 현재 클래스의 이름을 저장하는 데 사용되는 특수 상수입니다.
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la différence entre php5 et php8 Quelle est la différence entre php5 et php8 Sep 25, 2023 pm 01:34 PM

Quelle est la différence entre php5 et php8

Comment changer le port 80 en php5 Comment changer le port 80 en php5 Jul 24, 2023 pm 04:57 PM

Comment changer le port 80 en php5

Comment résoudre le problème que PHP5 n'écoute pas sur le port 9000 Comment résoudre le problème que PHP5 n'écoute pas sur le port 9000 Jul 10, 2023 pm 04:01 PM

Comment résoudre le problème que PHP5 n'écoute pas sur le port 9000

Quelle est la différence entre la syntaxe php7 et php5 Quelle est la différence entre la syntaxe php7 et php5 Jul 10, 2023 pm 03:25 PM

Quelle est la différence entre la syntaxe php7 et php5

Quelles sont les différences entre la version de php7 et la version 5 ? Quelles sont les différences entre la version de php7 et la version 5 ? Sep 15, 2023 pm 04:11 PM

Quelles sont les différences entre la version de php7 et la version 5 ?

Comment résoudre le problème que PHP5 n'écoute pas sur le port 9000 Comment résoudre le problème que PHP5 n'écoute pas sur le port 9000 Mar 21, 2023 pm 04:32 PM

Comment résoudre le problème que PHP5 n'écoute pas sur le port 9000

Comment changer le port 80 en php5 Comment changer le port 80 en php5 Mar 21, 2023 pm 04:32 PM

Comment changer le port 80 en php5

Discutez des différences de syntaxe entre PHP7 et PHP5 Discutez des différences de syntaxe entre PHP7 et PHP5 Mar 21, 2023 pm 07:10 PM

Discutez des différences de syntaxe entre PHP7 et PHP5

See all articles