php 类调用本身方法,php几个关于类的预定义自动调用方法
1、對象描述的配置
方法名
__tostring()我們可以直接打印對象句柄,從而獲得該方法的基本信息或其他內(nèi)容。
class My{
function
__tostring( ){
return?"我所要顯示的內(nèi)容";
}}
$p = new My();
echo $p;?>
結(jié)果:我所要顯示的內(nèi)容
//若不使用該方法,則Catchable fatal error: Object of
class My could not be converted to string in
F:\PHP100.COM\test\test.php on line 6 —— echo $p;
2、對象方法的異常處理
方法名 __call($funname,$arr_value)調(diào)用一些不存在的對象方法的異常處理,使程序繼續(xù)正常運行
class My{
function
__call($n,$v){
echo
"錯誤的方法名".$n."
";
//因為參數(shù)會有多個所要用數(shù)組的方式保存,打印的時候也要就用print_r
輸出?echo
"錯誤的參數(shù)".Print_r($v);
}}
$p = new My();
echo
$p->demo("第一",6);?>
結(jié)果:
錯誤的方法名demo
Array ( [0] => 第一 [1] => 6 )
錯誤的參數(shù)1
//若不使用該方法結(jié)果會報錯Fatal error: Call to undefined
method My::demo() in F:\PHP100.COM\test\test.php on line
12
3、克隆對象的應(yīng)用
方法名
__clone()?關(guān)鍵字?clone<?php
class My{
public $name = "我的類";
function __destruct(){
echo
"清理對象";?}
}
$p = new My();
$b = $p; //內(nèi)存中只有一個對象echo
$b->name."
";?>
結(jié)果:
我的類
清理對象
class My{
public $name = "我的類";
function __destruct(){
echo
"清理對象";?}
}
$p = new My();
//內(nèi)存中會有兩個對象
$b = clone $p;
echo
$b->name."
";?>
結(jié)果:
我的類
清理對象清理對象?//清理了兩次,說明開辟了兩個內(nèi)存
class My{
public $name = "我的類";
function __destruct(){
echo
"清理對象";?}
function
__clone(){?$this->name
= "克隆的類";?//自定義克隆時的動作:當(dāng)克隆時修改了克隆類中的對象?}}
$p = new My();
$b = clone $p;
echo
$p->name."
";
echo
$b->name."
";
?>
結(jié)果:
我的類
克隆的類
清理對象清理對象
4、自動載入對象的方法
方法名 __autoload()快速取得對象名稱并自動載入進(jìn)當(dāng)前頁面
//該方法是在類以外單獨的方法也就是我們所謂的構(gòu)造函數(shù)
function __autoload($class_n){
include($class_n.".php");
}
$p=new Mypc();?//將會被自動調(diào)用,執(zhí)行如下include("mypc.php");
$d=new demo();
//將會被自動調(diào)用,執(zhí)行如下include("demo.php");
總結(jié)
以上是生活随笔為你收集整理的php 类调用本身方法,php几个关于类的预定义自动调用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php提示密码错误的代码_php 实现密
- 下一篇: php多线程foreach,php中fo