Maison >développement back-end >tutoriel php >PHP implémente des méthodes magiques et concerne les instances indépendantes et les instances connectées

PHP implémente des méthodes magiques et concerne les instances indépendantes et les instances connectées

墨辰丷
墨辰丷original
2018-05-31 15:51:471214parcourir

Cet article présente principalement les méthodes magiques PHP et sur les instances indépendantes et les instances connectées. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Les détails sont les suivants :

<?php
//魔术方法
//当包含多个类
//1.自动装载类的魔术方法__autoload()
function __autoload($classname){
if (isset($classname)){
require_once $classname.&#39;.class.php&#39;;
}
}
/* $computer1=new Computer();
$computer1->addList(&#39;dalisng&#39;,234);
echo $computer1; */
//__call()屏蔽调用方法时候产生的错误,当我们调用一个不存在的方法时候,会自动调用__call()方法。
//独立实例,两个实例各自建立,互不干涉
$computer2=new Computer();
echo $computer2->name;echo "<br/>";
$computer3=new Computer();
echo $computer3->name;echo "<br/>";
$computer3->name="大亮";
echo &#39;$computer3->name:&#39;.$computer3->name;echo "<br/>";
echo &#39;$computer2->name:&#39;.$computer2->name;echo "<br/>";
echo "<hr/>";
//相连实例,即 用等于号来开辟一个新的实例,此时两个实例共同指向一个内存地址,一损俱损,一荣俱荣
$computer4=new Computer();
echo &#39;$computer4->name:&#39;.$computer4->name;echo "<br/>";
$computer5=$computer4;
echo &#39;$computer5->name:&#39;.$computer5->name;echo "<br/>";
$computer4->name="大亮";
echo &#39;$computer4->name:&#39;.$computer4->name;echo "<br/>";
echo &#39;$computer5->name:&#39;.$computer5->name;echo "<br/>";
echo "<hr/>";
//克隆__clone,克隆的新实例和被克隆的实例是两个相互独立的个体,虽然属性值相同,但是属性存放的地址不同,所以克隆后你我生死无关
$computer6=new Computer();
echo &#39;$computer6->name:&#39;.$computer6->name;echo "<br/>";
$computer7=clone $computer6;
echo &#39;$computer7->name:&#39;.$computer7->name;echo "<br/>";
$computer6->name="克隆";
echo &#39;$computer6->name:&#39;.$computer6->name;echo "<br/>";
echo &#39;$computer7->name:&#39;.$computer7->name;echo "<br/>";

Computer.class.php

<?php
class Computer{
public $name="1234";
function __construct(){
echo "you are right!";
}

function __call($methodName,$argsList){//当方法不存在的时候会自动调用此方法,$argsList是相应的参数
echo $methodName."()方法不存在!";
echo "<pre class="brush:php;toolbar:false">";
print_r($argsList);
echo "
"; } private function __toString(){ //当用户输出不存在的字符串时候,该方法自动调用 比如echo 对象名 echo "我是对象的字符串!"; } }

Résumé : C'est je l'espère pour cet article. Nous espérons que l'ensemble du contenu de l'article sera utile à l'étude de chacun.

Recommandations associées :

Solution au problème de traitement des transactions avec verrouillage à haute concurrence PHP+MySQL

PHP désactive les fonctions via des méthodes de contournement d'exécution de commandes système

Algorithme Monkey King implémenté par PHP (le singe choisit le roi)

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!

Déclaration:
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