【关于PHP魔术方法说明】教程文章相关的互联网学习教程文章

php类自动装载、链式操作、魔术方法实现代码

1、自动装载实例 目录下有3个文件:index.php load.php tests文件夹 tests文件夹里有 test1.php <?php namespace Tests; class Test1{static function test(){echo __CLASS__.<br>;echo __FILE__.<br>;} }index.php内容 <?php include "load.php"; Tests\Test1::test();load.php内容 <?php class Loader {static function loadClass($class){$class = __DIR__.DIRECTORY_SEPARATOR.str_replace(\\,/,$class)..php;if (file_exists...

PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析

本文实例讲述了PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法。分享给大家供大家参考,具体如下: 1.对象克隆 clone PHP4面向对象功能一个很大的缺点,是将对象视为另一种数据类型,这使得很多常见的OOP方法无法使用,如设计模式。这些方法依赖于将对象作为引用传递给其他类方法,而不是作为值传递,而按值传递却是PHP的默认做法。幸好,PHP5解决了这个问题,现在所有对象在默认情况下都被视为引用。但是,由于所有对...

PHP中__autoload()魔术方法详解【代码】

__autoload(),尝试加载未定义的类作用:你可以通过定义这个函数来启用类的自动加载。在魔术函数 __autoload() 方法出现以前,如果你要在一个程序文件中实例化100个对象,那么你必须用include或者require包含进来100个类文件,或者你把这100个类定义在同一个类文件中 —— 相信这个文件一定会非常大,然后你就痛苦了。但是有了 __autoload() 方法,以后就不必为此大伤脑筋了,这个类会在你实例化对象之前自动加载制定的文件。还是通...

PHP中__debugInfo()魔术方法详解【代码】

__debugInfo(),打印所需调试信息注意:该方法在PHP 5.6.0及其以上版本才可以用,如果你发现使用无效或者报错,请查看你的版本。看代码:<?php class C {private $prop;public function __construct($val) {$this->prop = $val;}/*** @return array*/public function __debugInfo() {return [propSquared => $this->prop ** 2,];} } var_dump(new C(42));结果:object(C)#1 (1) { ["propSquared"]=> int(1764) }再次注意:这里的 `...

PHP 常用的魔术方法使用及作用汇总表

本篇文章主要讲述的是PHP的常用的魔术方法使用及作用,感兴趣的朋友可以保存下来,以便到时需要,希望能够帮助到你。 什么是PHP魔术方法?在定义类时,以两个下划线字符(__)开头的方法都是魔术方法,而且方法名都是PHP预先定义好的,每一个都拥有魔术般的功能。所以我们自己在定义方法时,不建议使用两个下划线字符开头,这样会与PHP的魔术方法混淆。下表是常用的魔术方法使用及作用汇总表:魔术方法调用方法 作用__set 有两个参...

PHP中魔术方法的使用举例【代码】【图】

本文小编将就PHP中的魔术方法的使用做简要叙述附带代码,感兴趣的小伙伴可以看看!什么是“魔术方法”?在PHP中以两个下划线开头的方法,__construct(), __destruct (), __call(), __callStatic(),__get(), __set(), __isset(), __unset (), __sleep(), __wakeup(), __toString(), __set_state,() __clone() __autoload()等,被称为"魔术方法"(Magic methods)。如果希望PHP调用这些魔术方法,首先必须在类中定义,否则PHP不会执行...

基于PHP的加载类操作以及其他两种魔术方法的应用实例

实例如下所示: <?php 加载类 //include("./Ren.class.php"); //include "./Ren.class.php"; include_once("./Ren.class.php"); include_once("./Ren.class.php"); $f = new Ren(); $f->test();require("./Ren.class.php"); require_once("./Ren.class.php"); require_once "./Ren.class.php"; $f = new Ren(); $f->test(); 自动加载类 //1.所有类文件名和类名要保持一致 //2.所有类文件放在同一文件下 //3.所有类文件命名规则一致...

浅谈PHP中的面向对象OOP中的魔术方法

一、什么是魔术方法: PHP为我们提供了一系列用__开头的函数,这些函数无需自己手动调用,会在合适的时机自动调用,这类函数称为魔术函数。 例如: function __construct(){} 在new一个新对象时自动调用此函数 二、PHP中都有那些魔术方法,以及它们的作用:1.__construct():构造函数,new对象时自动调用 eg: class Person{public $name;public $age;function __construct($name,$age){$this->name=$name;$this->age=$age;} } 在new...

Yii框架使用魔术方法实现跨文件调用功能示例

本文实例讲述了Yii框架使用魔术方法实现跨文件调用。分享给大家供大家参考,具体如下: 目前项目用yii框架,controller调用facade的方法,facade调用adapter的方法,adapter调用api的方法,api封装了sql方法,但是大部分情况下,只是单纯的调用,但限于目前项目的规则,都要写方法,而方法都是单纯的return,于是写了个demo,模拟了下。 <?php class aApi {public static function tt1($name, $age){print_r($name);echo $age;} } ...

PHP魔术方法以及关于独立实例与相连实例的全面讲解

<?php //魔术方法 //当包含多个类 //1.自动装载类的魔术方法__autoload() function __autoload($classname){ if (isset($classname)){ require_once $classname..class.php; } }/* $computer1=new Computer(); $computer1->addList(dalisng,234); echo $computer1; */ //__call()屏蔽调用方法时候产生的错误,当我们调用一个不存在的方法时候,会自动调用__call()方法。 //独立实例,两个实例各自建立,互不干涉 $computer2=new ...

PHP中的常见魔术方法功能作用及用法实例

概述 在面向对象编程中,PHP提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利。PHP中的魔术方法通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件出发。这篇文章简单总结了PHP中提供的魔术方法。 开始之前 在总结PHP的魔术方法之前先来定义两个类,以便后边示例使用:代码如下: <?php class Device { public $name; public $battery; public $data = array(); p...

PHP魔术方法的使用示例

① __get/__set:将对象的属性进行接管 当访问一个不存在的对象属性时: index.php代码如下: <?php define(BASEDIR,__DIR__); //定义根目录常量 include BASEDIR./Common/Loader.php; spl_autoload_register(\\Common\\Loader::autoload); $obj = new \Common\Object(); //在php中访问一个不存在的对象属性时 echo $obj->title;会抛出一个错误:Notice: Undefined property: Common\Object::$title in D:\practise\php\design\psr...

PHP中的魔术方法总结和使用实例

魔术方法是PHP面向对象中特有的特性。它们在特定的情况下被触发,都是以双下划线开头,你可以把它们理解为钩子,利用模式方法可以轻松实现PHP面向对象中重载(Overloading即动态创建类属性和方法)。魔术方法很多还是成对出现的,以下列出目前PHP中所有的模式方法。 1.__construct,__destruct __constuct构建对象的时被调用; __destruct明确销毁对象或脚本结束时被调用; 2.__get,__set __set当给不可访问或不存在属性赋值时被调...

php常见的魔术方法详解

php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法。 PHP中的魔术方法有 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone, __autoload 1、__get、__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的 __get( $property ) 当调用一个未定义的属性时...

PHP类中的魔术方法(Magic Method)简明总结

1. __construct()和__destruct() 在实例被 创建/销毁 的时候被调用,都可以传递0个或多个参数。 class A{function A(){echo "build A";}function __destruct(){echo "destroy A";}}$obj = new A();//unset($obj);Note:The destructor method will be called as soon as there are no other references to a particular object, or in any order during the shutdown sequence.关于构造函数,PHP5.3.3开始,一个定义在某个特定的命...