php魔术函数 __clone()】的更多相关文章

原文地址: http://www.nowamagic.net/librarys/posts/php/32 PHP4面向对象功能一个很大的缺点,是将对象视为另一种数据类型,这使得很多常见的OOP方法无法使用,如设计模式.这些方法依赖于将对象作为引用传递给其他类方法,而不是作为值传递,而按值传递却是PHP的默认做法.幸好,PHP5解决了这个问题,现在所有对象在默认情况下都被视为引用.但是,由于所有对象都被视为引用而不是值,所以现在复制对象更为困难.如果尝试复制一个引用的对象,这只会指向原对象的地址位…
所谓魔术函数,是指不同时刻为了完成特定的功能,而自动调用的方法. __sleep       在serialize()序列化对象之前会调用这个函数__wakeup    在unserialize()解序列化之前调用这个函数__toString   当将对象转化为字串的时候调用这个函数__construct  构造函数,实例化一个对象的时候调用__destruct   析构函数,当对象实力被释放的时候调用__call  当调用类中没有的方法时会调用此函数__get   当访问一个类中没有的属性时调…
魔术函数 1.__construct()  实例化对象时被调用,  当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct()  当删除一个对象或对象操作终止时被调用. 3.__call()  对象调用某个方法,  若方法存在,则直接调用:  若不存在,则会去调用__call函数. 4.__get()  读取一个对象的属性时,  若属性存在,则直接返回属性值:  若不存在,则会调用__get函数. 5.__set() …
魔术变量 PHP 向它运行的任何脚本提供了大量的预定义常量. 不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了. 有八个魔术常量它们的值随着它们在代码中的位置改变而改变. 例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定.这些特殊的常量不区分大小写,如下: __LINE__ 文件中的当前行号. 实例: <?php echo '这是第 “ ' . __LINE__ . ' ” 行'; ?> 以上实例输出结果为: 这是第…
PHP超级全局变量(9个) $GLOBALS 储存全局作用域中的变量 $_SERVER 获取服务器相关信息 $_REQUEST 获取POST和GET请求的参数 $_POST 获取表单的POST请求参数 $_GET 获取表单的GET请求参数 $_FILES 获取上传文件的的变量 $_ENV 获取服务器端环境变量的数组 $_COOKIE  浏览器cookie的操作 设置cookie:setcookie(name, value, expire, path, domain); 获取cookie:$_CO…
PHP魔术变量确切地说是PHP魔术常量,不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了.比如说__LINE__放在不同的地方是显示不同的行数 PHP魔术常量(8个) __LINE__ 文件中的当前行号. <?php echo '这是第 " ' . __LINE__ . ' " 行'; ?> 以上实例输出结果为: 这是第 “ 2 ” 行 <?php 你好吗? echo '这是第 " ' . _…
PHP超级全局变量.魔术变量和魔术函数的区别和联系 一.总结 一句话总结:PHP超级全局变量主要用于web开发,魔术变量主要用于输出当前对象的信息,魔术函数则是对象的常用方法 相同点: 1.PHP超级全局变量.魔术变量和魔术函数存在的意义是因为在php开发中会频繁的使用一些变量和函数,所以php的开发者们就给我们做成了全局的来方便我们 2.都是全局的 不同点: 1.三者的写法不同:PHP超级全局变量主要是 $_大写变量名,魔术变量 __大写变量名__,魔术函数 __小写函数名() 2.用途不同:…
Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216  java c# php js.docx 1.1. 预定义函数 魔术方法 魔术函数是什么1 1.2. "生成器函数Supplier1 1.3. JDK预定义了很多函数接口以避免用户重复定义.最典型的是Function:2 1.4. 另一个预定义函数接口叫做Consumer,跟Function的唯一不同是它没有返回值.2 1.5. 还有一个Predicate,用来判断某项条件是否满足.经常用来进行筛滤操…
一.魔术函数(13个) 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() 当删除一个对象或对象操作终止时被调用. 3.__call() 对象调用某个方法, 若方法存在,则直接调用:若不存在,则会去调用__call函数. 4.__get() 读取一个对象的属性时,若属性存在,则直接返回属性值: 若不存在,则会调用__get函数. 5.__set() 设置一个…
一.魔术函数(13个) 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() 当删除一个对象或对象操作终止时被调用. 3.__call() 对象调用某个方法, 若方法存在,则直接调用:若不存在,则会去调用__call函数. 4.__get() 读取一个对象的属性时,若属性存在,则直接返回属性值: 若不存在,则会调用__get函数. 5.__set() 设置一个…
0x00 魔术函数 1. __construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2. __destruct() 当删除一个对象或对象操作终止时被调用. 3. __call() 对象调用某个方法, 若方法存在,则直接调用: 若不存在,则会去调用__call函数. 4. __get() 读取一个对象的属性时, 若属性存在,则直接返回属性值: 若不存在,则会调用__get函数. 5. __set()…
ThinkPHP 是国内比较优秀的 PHP 框架,但有些地方不是很好,比如那些 魔术函数 D(),用它返回的类实例,在各个IDE(如 PhpStorm)下根本识别不了,导致如下问题: 1.不支持 代码自动提示: 2.不支持 按住 Ctrl 键,点击 方法名,进入 方法的 定义处: 3.不支持 重构: 4.不支持 方法被使用/调用 统计: 等等问题: 总而言之,强大的IDE(PhpStorm)拿它一点办法都没有. 于是,越来越讨厌这样的 D()函数,,,改造一下它吧,操作过程如下: 1.新建 Ba…
1.string serialize ( mixed $value )— 产生一个可存储的值的表示 serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方. 这有利于存储或传递 PHP 的值,同时不丢失其类型和结构 想要将已序列化的字符串变回 PHP 的值,可使用 unserialize() @ 序列化数组 serialize($arr); 在设置cookie的时候可以通过序列化数组的形式传递多个值,然后在接收页面进行反序列化读取 @ 序列化对象 cla…
__clone() - 当对象克隆的时候自动加载此方法 __toString() - 当对象需要echo打印输出的时候自动加载此方法 __clone() <?php class example{ public static $pa; public $pb; public function __construct(){ $this->pb = ++self::$pa; } public function __clone(){ $this->pb = 'no zuo no die'; } }…
在提到__call之前,先来看一个实例的测试结果,以便更好地去了解__call方法的作用.上代码: <?php class Person{ function say(){ echo "Hello, wblog!<br>"; } } $Person=new Person(); $Person->run("teacher"); //调用对象中不存在的方法run $Person->eat("child", "ap…
PHP中定义了一个内置方法__clone()来调整兑现的克隆行为: 当一个对象被克隆的时候会自动执行__clone()方法,而复制的对象可以在其方法内进行调整 header('Content-type:text/html;charset="utf-8"'); /*存在内置方法_clone()的类*/ class Computer{ public $_name; public function __clone(){ $this->_name = "IBM"; }…
__toString()是快速获取对象的字符串信息的便捷方式 在直接输出对象引用时自动调用的方法. __toString()的作用 当我们调试程序时,需要知道是否得出正确的数据.比如打印一个对象时,看看这个对象都有哪些属性,其值是什么,如果类定义了toString方法,就能在测试时,echo打印对象体,对象就会自动调用它所属类定义的toString方法,格式化输出这个对象所包含的数据. 下面我们来看一个__toString()的实例 <?php class Person{ private $na…
https://www.cnblogs.com/ccw869476711/p/9183783.html 一.魔术常量(魔术变量) 概念:所谓的魔术常量就是PHP预定义的一些常量,这些常量会随着所在的位置而变化. 1.__LINE__  获取文件中的当前行号. 2.__FILE__  获取文件的完整路径和文件名. 3.__DIR__   获取文件所在目录. 4.__FUNCTION__  获取函数名称(PHP 4.3.0 新加). 5.__CLASS__    获取类的名称(PHP 4.3.0 新…
魔术函数:9.3 构造函数:__construct() 9.3.1 实例化对象时被调用. 9.3.2 在类中,构造函数是用来初始化对象的,利用构造函数,可以操作对象,并改变它的值. 9.3.3 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 9.3.4 当子类重写了构造函数,子类被实例化时,只调用子类的构造函数,而父类的构造函数不被调用. 9.4 析构函数:__destruct() 9.4.1 当删除一个对象或对象操作终止时被调用. 9…
在前面的PHP面向对象之对象和引用,"$b=$a"的方式复制对象传递的是对象的地址,而不是传递对象的值(内容),我们可以通过克隆对象来实现对对象的内容和引用的复制 使用传址引用的方式调用对象,实质调用的是同一个对象,有时需要建设立一个对象的副本,改变原来的对象时不希望影响到副本,在PHP中可以根据现在的对象来克隆出一个完全一样的对象,克隆出来的副本和原本两个对象完全独立而互不干扰 在php中使用"clone"关键字来克隆对象 <?php class Perso…
在PHP5的面向对象程序设计中提供了一些常见的关键字,用来修饰类.成员属性或成员方法,使他们具有特定的功能,例如final.static.const等关键字.还有一些比较实用的魔术方法,用来提高类或对象的应用能力,例如__call().__toString().__autoload等. 自己对部分关键字的理解: Final:不让儿子继承夫类,也就是说不能够对父类在进行调用,否则将会出错. ①final关键字的应用 final关键字的作用如下:a.实用final标识的类,不能被继承.b.在类中使用…
魔术函数 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() 当删除一个对象或对象操作终止时被调用. 3.__call() 对象调用某个方法, 若方法存在,则直接调用: 若不存在,则会去调用__call函数. 4.__get() 读取一个对象的属性时, 若属性存在,则直接返回属性值: 若不存在,则会调用__get函数. 5.__set() 设置一个对象的属性…
一.什么是魔术方法: PHP为我们提供了一系列用__开头的函数,这些函数无需自己手动调用,会在合适的时机自动调用,这类函数称为魔术函数.例如: function __construct(){} 在new一个新对象时自动调用此函数 二.PHP中都有那些魔术方法,以及它们的作用:1.__construct():构造函数,new对象时自动调用 eg: class Person{ public $name; public $age; function __construct($name,$age){ $…
  前 言 这篇文章主要介绍了PHP编程中的__clone()方法使用详解,__clone()方法相当于一个浅拷贝,是PHP入门学习中的基础知识,需要的朋友可以参考下. 1对象是引用数据类型,当使用=将一个对象赋值给另一个对象时,赋的是对象的地址,两个变量指向同一地址,一个改变另一个也跟着变 __construct() 函数 :创建一个新的 SimpleXMLElement 对象.如果成功,则该函数返回一个对象.如果失败,则返回 false. 原$zhangsan: class Person{…
从php5以后的版本,类就可以使用魔术方法了.PHP规定以两个下划线开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开 头,除非是为了重载已有的魔术方法. 目前php已有的魔术方法有 __construct,__destruct,__call,__get,__set,__isset,__unset,__sleep,__wakeup,__toString,__set_state 和 __clone. __construct和__destruct __construct和__destruc…
1.构造函数:__construct(): 构造函数是类中的一个特殊函数,当我们使用new关键字实例化对象时,相当于调用了类的构造函数. function __construct($name){ $this -> name = $name; } 2.析构函数:__destruct(): ①析构函数在对象被销毁释放之前自动调用: ②析构函数不能带有任何的参数: ③析构函数常用于对象使用完以后,释放资源,关闭资源等. function __destruct(){ echo "over!&quo…
PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods) 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __call(),在对象中调用一个不可访问方法时调用 __callStatic(),用静态方式中调用一个不可访问方法时调用 __get(),获得一个类的成员变量时调用 __set(),设置一个类的成员变量时调用 __isset(),当对不可访问属性调用isset()或empty()时调用 __unset(),当对不可访问…
PHP的魔术常量(变量).魔术方法(函数).超全局变量 一.魔术常量(魔术变量) 概念:所谓的魔术常量就是PHP预定义的一些常量,这些常量会随着所在的位置而变化. 1.__LINE__  获取文件中的当前行号. 2.__FILE__  获取文件的完整路径和文件名. 3.__DIR__   获取文件所在目录. 4.__FUNCTION__  获取函数名称(PHP 4.3.0 新加). 5.__CLASS__    获取类的名称(PHP 4.3.0 新加). 6.__METHOD__  获取类的方法…
一.魔术常量(魔术变量) 概念:所谓的魔术常量就是PHP预定义的一些常量,这些常量会随着所在的位置而变化. 1.__LINE__  获取文件中的当前行号. 2.__FILE__  获取文件的完整路径和文件名. 3.__DIR__   获取文件所在目录. 4.__FUNCTION__  获取函数名称(PHP 4.3.0 新加). 5.__CLASS__    获取类的名称(PHP 4.3.0 新加). 6.__METHOD__  获取类的方法名(PHP 5.0.0 新加). 7.__NAMESPA…
PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __call(),在对象中调用一个不可访问方法时调用 __callStatic(),用静态方式中调用一个不可访问方法时调用 __get(),获得一个类的成员变量时调用 __set(),设置一个类的成员变量时调用 __isset(),当对不可访问属性调用isset()或empty(…