


Explication détaillée des mots-clés et méthodes magiques couramment utilisés en PHP orienté objet
Jul 10, 2017 am 11:46 AM1.construct()
L'objet instancié est automatiquement appelé. Construct est appelé lorsque construct et la fonction avec le nom de classe et le nom de fonction existent en même temps, et que l'autre n'est pas appelée.
La fonction avec le nom de classe et le nom de fonction est l'ancienne version du constructeur.
2.destruct()
est appelé lors de la suppression d'un objet ou lorsqu'une opération sur un objet se termine.
3.call()
L'objet appelle une méthode. Si la méthode n'existe pas, appelez cette méthode
4.get()
Lire une propriété d'objet, si la propriété d'objet est privée elle sera appelée
5. set()
Lors de l'attribution d'une valeur à une propriété d'objet, elle sera appelée si la propriété est privée
6.toString()
Elle sera appelée lors de l'impression un objet.
7.clone()
Appelé lors du clonage d'un objet, tel que?: $a=new test(); $a1=clone $a;
8.sleep ( )
Serialize a été appelé auparavant. Si l'objet est plus grand que et que vous souhaitez supprimer quelque chose pendant la sérialisation, vous pouvez l'utiliser.
9.wakeup()
est appelé lorsque Unserialize est utilisé pour effectuer un travail d'initialisation d'objet.
10.isset()
Détecte si les attributs d'un objet existent. Si l'attribut détecté est privé, il sera appelé.
11.unset()
Lors de la suppression d'un attribut d'objet, si l'attribut d'objet supprimé est privé, il sera appelé
12.set_state()
Appelé lorsque var_export est appelé. Utilisez la valeur de retour de set_state comme valeur de retour de var_export.
13.autoload()
Lors de l'instanciation d'un objet, si la classe correspondante n'existe pas, cette méthode sera utilisée.
L'éditeur suivant vous apportera une discussion détaillée des mots-clés orientés objet PHP et des méthodes magiques couramment utilisées. L'éditeur le trouve plut?t bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'oeil
Mots-clés couramment utilisés en PHP orienté objet
final
1. Final ne peut pas modifier les attributs des membres (ce mot-clé n'est pas utilisé pour les constantes dans les classes)
2. Final ne peut modifier que les classes et les méthodes
Fonction?:
Les classes modifiées avec final ne peuvent pas être héritées par les sous-classes Les méthodes modifiées avec final ne peuvent pas être remplacées par les sous-classes Utilisé pour restreindre l'héritage des classes, méthodes S'il n'est pas remplacé, utilisez final<?php //final修飾的類不能被繼承 final class Person{ var $name; var $age; var $sex; function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function fun1(){ echo $this->name; } } //Student類繼承類用final修飾的Person類,所以會報錯 class Student extends Person{ } $stu=new Student("zs",20,"nan"); $stu->fun1(); ?>
static (mot-clé statique)
1. Utilisez static pour modifier les propriétés et les méthodes des membres , ne peut pas modifier la classe2. Les attributs membres modifiés avec static peuvent être partagés par tous les objets de la même classe3. Les données statiques sont stockées dans le segment de données en mémoire (segment statique initialisé). ) 4. Les données statiques sont allouées à la mémoire lorsque la classe est chargée pour la première fois. Lorsque la classe est utilisée ultérieurement, elles sont obtenues directement à partir du segment de données 5. Qu'est-ce que la classe est en cours de chargement?? Tant que cette classe est utilisée dans le programme (ce nom de classe appara?t) 6. Les méthodes statiques (méthodes statiques modifiées) ne peuvent pas accéder aux membres non statiques (les membres statiques sont accessibles dans les méthodes non statiques) Parce que les membres non statiques doivent être accessibles à l'aide d'objets. Pour accéder aux membres internes, $this est utilisé. Les méthodes statiques n'ont pas besoin d'être appelées à l'aide d'objets, donc il n'y a pas d'objet $this ne peut pas représenter un objet. Elle est non statique. Les membres doivent également utiliser des objets Si vous êtes s?r que les membres non statiques ne sont pas utilisés dans une méthode, vous pouvez déclarer cette méthode comme méthode statique Remarque?: Les membres statiques doivent utiliser des noms de classe Pour y accéder, necréez pas d'objets, n'utilisez pas d'objets pour accéder au
Nom de classe :: membres statiquesSi vous utilisez des membres statiques dans une classe, vous pouvez utiliser self pour représenter cette classeconst
1 Elle ne peut modifier que les attributs des membres . 2. Utilisez const< pour déclarer des attributs constants dans une classe ??>3 La méthode d'accès est la même que les propriétés des membres statiques (utilisez class name::constant en dehors de la classe et self::constant à l'intérieur de la classe) ?. >
4. Les constantes doivent recevoir des valeurs initiales lorsqu'elles sont déclarées<?php //定義一個類“人們” class Person{ protected $name; protected $age; protected $sex; static $country="中國"; //聲明一個常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function getCountry(){ //如果在類中使用靜態(tài)成員,可以使用self代表本類 return self::$country; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } protected function eat(){ echo "吃飯!<br>"; } function run(){ //在類的內(nèi)部使用常量 self::常量 echo self::RUN."<br>"; } //聲明靜態(tài)的方法 static function hello(){ echo "你好<br>"; } }Méthodes magiques couramment utilisées en PHP orienté objet
<. ??>call()
Fonction?: Lors de l'appel d'une méthode qui n'existe pas dans l'objet, une erreur système appara?tra, puis le programme sortira. Quand appeler automatiquement?: il appellera automatiquement lors de l'appel d'une méthode qui n'existe pas dans un objet
Gérer certains appels d'erreur inexistants
Cette méthode nécessite deux paramètres
toString()<?php //定義一個類“人們” class Person{ protected $name; protected $age; protected $sex; static $country="中國"; //聲明一個常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function getCountry(){ //如果在類中使用靜態(tài)成員,可以使用self代表本類 return self::$country; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } protected function eat(){ echo "吃飯!<br>"; } function run(){ //在類的內(nèi)部使用常量 self::常量 echo self::RUN."<br>"; } //處理一些不存在的錯誤調(diào)用 //就會在調(diào)用一個對象中不存在的方法時就會自動調(diào)用 function call($methodName,$args){ //$methodName調(diào)用不存在方法的方法名 $args里面的參數(shù) echo "你調(diào)用的方法{$methodName}(參數(shù):"; print_r($args); echo ")不存在<br>"; } //聲明靜態(tài)的方法 static function hello(){ echo "你好<br>"; } } $p=new Person("張三",20,"女"); $p->test(10,20,30); $p->demo("aa","bb"); $p->say(); ?>
est automatiquement appelé lors de la sortie directe d'une référence d'objet, utilisé pour obtenir rapidement la valeur maximale représentée par un cha?ne. Méthode rapide
clone()<?php //定義一個類“人們” class Person{ protected $name; protected $age; protected $sex; static $country="中國"; //聲明一個常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } function toString(){ return self::$country."<br>{$this->name}<br>{$this->age}<br>{$this->sex}<br>".self::RUN; } } $p=new Person("張三",21,"女"); echo $p; ?>
L'objet clone est traité à l'aide de clone()Original ( original Object)
Copier (objet copié)
clone() est une méthode appelée automatiquement lors du clonage d'un objet
Dès qu'un objet est créé, il doit être initialisé L'action est similaire au constructeur constuct
在clone()方法中的$this關(guān)鍵字代表的是復本的對象,$that代表原本對象
<?php //定義一個類“人們” class Person{ var $name; protected $age; protected $sex; static $country="中國"; //聲明一個常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } function clone(){ $this->name="王五"; $this->age=18; $this->sex="男"; } function destruct(){ echo $this->name."<br>"; } } $p=new Person("張三",21,"女"); $p->say(); //這并不能叫做克隆對象,因為在析構(gòu)時只析構(gòu)一次 /*$p1=$p; $p1->name="李四"; $p1->say();*/ $p1= clone $p; $p1->say(); ?>
autoload()
注意:其它的魔術(shù)方法都是在類中添加起作用,這是唯一一個不在類中添加的方法
只要在頁面中使用到一個類,只要用到類名,就會自動將這個類名傳給這個參數(shù)
<?php function autoload($className){ include "./test/".$className.".class.php"; } $o=new One; $o->fun1(); $t=new Two; $t->fun2(); $h=new Three; $h->fun3(); ?>
test里的文件
one.class.php
<?php class One{ function fun1(){ echo "The Class One<br>"; } } ?>
two.class.php
<?php class Two{ function fun2(){ echo "The Class Two<br>"; } } ?>
three.class.php
<?php class Three{ function fun3(){ echo "The Class Three<br>"; } } ?>
對象串行化(序列化):將一個對象轉(zhuǎn)為二進制串(對象是存儲在內(nèi)存中的,容易釋放)
使用時間:
1.將對象長時間存儲在數(shù)據(jù)庫或文件中時
2.將對象在多個PHP文件中傳輸時
serialize(); 參數(shù)是一個對象,返回來的就是串行化后的二進制串
unserialize(); 參數(shù)就是對象的二進制串,返回來的就是新生成的對象
sleep()
是在序列化時調(diào)用的方法
作用:就是可以將一個對象部分串行化
只要這個方法中返回一個數(shù)組,數(shù)組中有幾個成員屬性就序列化幾個成員屬性,如果不加這個方法,則所有成員都被序列化
wakeup()
是在反序列化時調(diào)用的方法
也是對象重新誕生的過程
<?php //定義一個類“人們” class Person{ var $name; protected $age; protected $sex; static $country="中國"; //聲明一個常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } function clone(){ $this->name="王五"; $this->age=18; $this->sex="男"; } //是在序列化時調(diào)用的方法,可以部分串行化對象 function sleep(){ return array("name","age"); } //是在反序列化時調(diào)用的方法,也是對象重新誕生的過程??梢愿淖兝锩娴闹? function wakeup(){ $this->name="sanzhang"; $this->age=$this->age+1; } function destruct(){ } } ?>
read.php
<?php require "11.php"; $str=file_get_contents("mess.txt"); $p=unserialize($str); echo $p->say(); ?>
write.php
<?php require "11.php"; $p=new Person("張三",18,"男"); $str=serialize($p); file_put_contents("mess.txt",$str); ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

L'entrée vocale de l'utilisateur est capturée et envoyée au backend PHP via l'API MediaRecorder du JavaScript frontal; 2. PHP enregistre l'audio en tant que fichier temporaire et appelle STTAPI (tel que Google ou Baidu Voice Recognition) pour le convertir en texte; 3. PHP envoie le texte à un service d'IA (comme Openaigpt) pour obtenir une réponse intelligente; 4. PHP appelle ensuite TTSAPI (comme Baidu ou Google Voice Synthesis) pour convertir la réponse en fichier vocal; 5. PHP diffuse le fichier vocal vers l'avant pour jouer, terminant l'interaction. L'ensemble du processus est dominé par PHP pour assurer une connexion transparente entre toutes les liens.

La méthode principale de création de fonctions de partage social dans PHP est de générer dynamiquement des liens de partage qui répondent aux exigences de chaque plate-forme. 1. Obtenez d'abord la page actuelle ou les informations d'URL et d'article spécifiées; 2. Utilisez UrLencode pour coder les paramètres; 3. épisser et générer des liens de partage en fonction des protocoles de chaque plate-forme; 4. Afficher les liens sur l'avant pour que les utilisateurs puissent cliquer et partager; 5. Générez dynamiquement des balises OG sur la page pour optimiser l'affichage du contenu du partage; 6. Assurez-vous d'échapper à la saisie des utilisateurs pour empêcher les attaques XSS. Cette méthode ne nécessite pas d'authentification complexe, a de faibles co?ts de maintenance et convient à la plupart des besoins de partage de contenu.

Pour réaliser la correction d'erreur de texte et l'optimisation de la syntaxe avec l'IA, vous devez suivre les étapes suivantes: 1. Sélectionnez un modèle ou une API d'IA appropriée, tels que Baidu, Tencent API ou bibliothèque NLP open source; 2. Appelez l'API via Curl ou Guzzle de PHP et traitez les résultats de retour; 3. Afficher les informations de correction d'erreur dans l'application et permettre aux utilisateurs de choisir d'adopter l'adoption; 4. Utilisez PHP-L et PHP_CODESNIFFER pour la détection de syntaxe et l'optimisation du code; 5. Collectez en continu les commentaires et mettez à jour le modèle ou les règles pour améliorer l'effet. Lorsque vous choisissez AIAPI, concentrez-vous sur l'évaluation de la précision, de la vitesse de réponse, du prix et du support pour PHP. L'optimisation du code doit suivre les spécifications du PSR, utiliser le cache raisonnablement, éviter les requêtes circulaires, revoir le code régulièrement et utiliser x

1. La maximisation de la valeur commerciale du système de commentaires nécessite de combiner la livraison précise de la publicité native, les services à valeur ajoutée par l'utilisateur (tels que le téléchargement d'images, les commentaires de recharge), d'influencer le mécanisme d'incitation basé sur la qualité des commentaires et la conformité de la monétisation anonyme des données de données; 2. La stratégie d'audit doit adopter une combinaison de mécanismes de filtrage des mots clés dynamiques pré-audit et de signalement des utilisateurs, complétés par une note de qualité des commentaires pour réaliser une exposition hiérarchique de contenu; 3. Anti-brosses nécessite la construction d'une défense multicouche: la vérification sans capteur RecaptChav3, le robot de reconnaissance de champ de miel, IP et la limite de fréquence d'horodatage empêchent l'arrosage, et la reconnaissance du modèle de contenu marque les commentaires suspects et itéra en continu pour traiter les attaques.

PHP n'effectue pas directement un traitement d'image AI, mais s'intègre via les API, car il est bon dans le développement Web plut?t que dans les taches à forte intensité informatique. L'intégration de l'API peut atteindre une division professionnelle du travail, réduire les co?ts et améliorer l'efficacité; 2. Intégration des technologies clés incluez l'utilisation de Guzzle ou Curl pour envoyer des demandes HTTP, le codage et le décodage des données JSON, l'authentification de la sécurité des clés de l'API, les taches de traitement de la file d'attente asynchrones, les taches prenant du temps, la gestion des erreurs robuste et le mécanisme de retrait, le stockage et l'affichage d'images; 3. Les défis courants incluent le co?t des API incontr?lable, les résultats de génération incontr?lables, la mauvaise expérience utilisateur, les risques de sécurité et la gestion difficile des données. Les stratégies de réponse consistent à définir des quotas et des caches utilisateur, en fournissant des conseils ProTT et une sélection multi-images, des notifications asynchrones et des invites de progrès, un stockage et un audit de contenu de la variable d'environnement clé et un stockage cloud.

PHP assure l'atomicité de la déduction des stocks via les transactions de base de données et les verrous en ligne de Forupdate pour empêcher la survente élevée élevée en simultation; 2. La cohérence de l'inventaire multiplateforme dépend de la gestion centralisée et de la synchronisation axée sur les événements, combinant des notifications API / WebHook et des files d'attente de messages pour assurer une transmission fiable de données; 3. Le mécanisme d'alarme doit définir un faible inventaire, un inventaire zéro / négatif, des ventes invidables, des cycles de réapprovisionnement et des stratégies de fluctuations anormales dans différents scénarios, et sélectionner Dingtalk, SMS ou les personnes responsables par e-mail en fonction de l'urgence, et les informations d'alarme doivent être complètes et claires pour réaliser l'adaptation et la réponse rapide.

PhpisstillRelevantinmodernerterpriseenvironments.1.modernPhp (7.xand8.x) offre des performances, des stricts, un jitcompilation, et modernsyntax, rendant la main

Sélectionnez le service de reconnaissance vocale AI approprié et intégrez PHPSDK; 2. Utilisez PHP pour appeler FFMPEG pour convertir les enregistrements en formats requis API (tels que WAV); 3. Téléchargez des fichiers sur le stockage cloud et appelez API Asynchronous Recognition; 4. Analyser les résultats JSON et organiser du texte à l'aide de la technologie NLP; 5. Générez des documents Word ou Markdown pour terminer l'automatisation des enregistrements de la réunion. L'ensemble du processus doit assurer le chiffrement des données, le contr?le d'accès et la conformité pour garantir la confidentialité et la sécurité.
