基于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.所有类文件命名规则一致
function __autoload($cname){
 require_once("./$cname.class.php");
}
$t = new test();
$t->ceshi().'<br>';
$s = new Ren();
$s->test();

两种魔术方法
 class Ren{
 public $name;
 public function say(){
  echo "输出对象方法";
 }
 //输出对象的方法
 public function __tostring(){
  echo "另一种输出方法"; //echo $s->__tostring();
  return "另一种输出方法";//echo $s;
 }
 //克隆对象的方法
 public function __clone(){
  $this->name = "Riven";//$this代表复本(克隆的对象)
 }
}
$s = new Ren();
//echo $s->__tostring();//输出字符串
//$s->say();

$s->name = "小V";
var_dump($s);

$s1 = clone $s;
var_dump($s1);
?>

以上这篇基于PHP的加载类操作以及其他两种魔术方法的应用实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

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

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

  • php中的常用魔术方法总结

    常用的魔术方法有:__Tostring ()  __Call()  __autoLoad()  __ clone()  __GET()   __SET()    __isset()  __unset() 1.__Tostring()   用于定义输出对象引用时调用  常用于打印一些对象的信息 必须有返回值eg:有一个persion类Persion per =new persion()Echo per;    //直接调用会出错我们可以在类的定义中添加__tostring()方法 复制代码 代码如

  • php 魔术方法详解

    从PHP 5以后的版本,PHP中的类就可以使用魔术方法了.其规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法.PHP 将所有以 _ _(两个下划线)开头的类方法保留为魔术方法. __toString() 和__invoke() public string __toString ( void ):当对象被当做string使用时,这个方法会被自动调用.此方法必须返回一个字符串 复制代码 代码如下: <?php     class M

  • php常见的魔术方法详解

    php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法. PHP中的魔术方法有 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone, __autoload 1.__get.__set  这两个方法是为在类和他们的父类中

  • PHP中常用的魔术方法

    我们在PHP中经常用到魔术方法,像构造方法,析构方法等等魔术变量,下面总结一下一些常用的魔术变量: __construct(),__destruct(),__clone(),__autoload(),__tostring(),__invoke(),__set(),__get(),__unset(),__isset(),__call(),__callstatic; 1,__constuct()构造函数 通常实例化完一个对象之后,都要对该对象的属性进行初始化!在实例化一个对象的时候,PHP系统会自动

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

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

  • 基于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");

  • 基于jquery trigger函数无法触发a标签的两种解决方法

    起因:点击icon图标后要触发a标签的链接转跳动作,但是用 JQ 的 $('#a').trigger('click') 居然不起作用,遂百度之,总结两种方法如下: (原因:JQ 的 trigger() 方法确实无法触发 a 标签的转跳动作.) 1:JQ 方法: 对目标 a 标签内部新增一个 span 标签 ,然后给 span 标签绑定 trigger('click') 事件. $('#a').html('<span></span>').children().trigger('cli

  • Yii2中YiiBase自动加载类、引用文件方法分析(autoload)

    本文实例分析了Yii2中YiiBase自动加载类.引用文件的方法.分享给大家供大家参考,具体如下: 在Yii2中这个函数是用来加载类的,没有直接引用文件的相关实现.但是这个也可以用来引用文件. public static function autoload($className) { /* * $classMap是一个name-value数组, * name为类的名称, * value为这个类的文件路径,其中路径可包含别名 * * 首先在$classMap中查找是否设置了类别名路径 */ if

  • java 利用java反射机制动态加载类的简单实现

    如下所示: ////////////////// Load.java package org.bromon.reflect; import java.util.ArrayList; import java.util.List; public class Load implements Operator { @Override public List<?> act(List<?> params) { // TODO Auto-generated method stub List<

  • Yii实现自动加载类地图的方法

    本文实例讲述了Yii实现自动加载类地图的方法.分享给大家供大家参考.具体如下: Yii继承的一个静态属性$classMap,可以用于Yii的自动加载类地图.数组中的键是类名,数组中的值是相应类文件的路径. require_once($yii); $app = Yii::createWebApplication($config); Yii::$classMap = array( 'JPhpMailer' => Yii::getPathOfAlias('ext') . '/phpmailer/JPh

  • PHP命名空间和自动加载类

    PHP的命名空间(namespace)是php5.3之后才有的.这个概念在C#中已经很早就有了,php中的namespace其实和c#的概念是一样的. 为什么php中要使用namespace? 假设如果不使用namespace,那么每个类在一个项目中的名字就必须是固定的.因为php在new的时候不管是调用autoload还是调用已加载过的类,都存在一个类名对应的文件.所以在没有namespace的时候,我们会想各种命名规则来区分不同的类,比如project1_school1_class1_Stu

  • PHP面向对象程序设计之命名空间与自动加载类详解

    本文实例讲述了PHP面向对象程序设计之命名空间与自动加载类.分享给大家供大家参考,具体如下: 命名空间 避免类名重复,而产生错误. <?php require_once "useful/Outputter.php"; class Outputter { // output data private $name; public function setName($name) { $this->name = $name; } public function getName()

  • 基于vue 动态加载图片src的解决方法

    好久没更博了,最近也不知道在忙啥,反正就是感觉挺忙的,在群里看到陆陆续续有刚入vue小伙伴问vue动态加载图片总是404的状况,这篇就简单的说明为什么会出现以及解决办法有哪些. 首先先说明下vue-cli的assets和static的两个文件的区别,因为这对你理解后面的解决办法会有所帮助 assets:在项目编译的过程中会被webpack处理解析为模块依赖,只支持相对路径的形式,如< img src="./logo.png">和background:url(./logo.p

  • Android编程图片加载类ImageLoader定义与用法实例分析

    本文实例讲述了Android编程图片加载类ImageLoader定义与用法.分享给大家供大家参考,具体如下: 解析: 1)图片加载使用单例模式,避免多次调用时产生死锁 2)核心对象 LruCache 图片加载时先判断缓存里是否有图片,如果有,就使用缓存里的 没有就加载网络的,然后置入缓存 3)使用了线程池ExecutorService mThreadPool技术 4)使用了Semaphore 信号来控制变量按照先后顺序执行,避免空指针的问题 如何使用: 在Adapter里加载图片时 复制代码 代

  • PHP命名空间与自动加载类详解

    本文实例讲述了PHP命名空间与自动加载类.分享给大家供大家参考,具体如下: 今天我要给大家介绍的是PHP的命名空间 和 自动加载类 我先简单的分开演示 在放在一起 大家请看: 什么是自动加载类? 想必大家都应该知道__autoload 这个魔术方法 $db = new DB(); function __autoload($className) { echo $className; exit(); //在这个里面引用类 } 在运用这个类只能加载一次 ,在很多时候我们要引入的不止一个类这个时候怎么办

随机推荐