<?php

class mycoach
{
public function __construct($name,$age)
{
$this->name = $name;
$this->age = $age;
echo "upon melancholy hill"."\n";
} public function __toString()
{
#echo时触发,返回一个字符串
return "working hard and party with cpc and cj"."\n";
} public function __debugInfo()
{
#一个诡异的方法,解析一个并不存在的函数,以及它其中的数组,返回一个数组
#该方法必须有两个参数
#var_dump()方法触发
return ['name'=>$this->name,'age'=>$this->age];
} public function __call($funcname,$myvals)
{
#触发时机,当对象调用一个并不存在的方法时
#第一个参数为函数名,第二个为函数的参数---以数组的形式组成
var_dump($funcname,$myvals);
} } $cpc = new mycoach('陈培昌',21);
echo $cpc;
$cpc->wenheiwa();
$cpc->saiwa(["0"=>["name"=>"cpc","age"=>22],"1"=>["name"=>"cj","age"=>20]]);

输出结果:

upon melancholy hill     #实例化时调用了__construct()方法
working hard and party with cpc and cj   #打印对象时调用了__toString方法
string(8) "wenheiwa"  #对象调用了不存在的方法wenheiwa()执行了__call方法,由于函数没有参数,因此打印空
array(0) {
}
string(5) "saiwa"    #对象调用了不存在的方法saiwa()执行了__call方法,由于函数有参数,因此打印参数----其形式为数组
array(1) {
  [0]=>
  array(2) {
    [0]=>
    array(2) {
      ["name"]=>
      string(3) "cpc"
      ["age"]=>
      int(22)
    }
    [1]=>
    array(2) {
      ["name"]=>
      string(2) "cj"
      ["age"]=>
      int(20)
    }
  }
}

php类知识---魔术方法__toString,__call,__debugInfo的更多相关文章

  1. php魔术方法__tostring的应用

    当echo一个对象的时候,会报错误 Object of class Person could not be converted to string 我们可以通过魔术方法__tostring()  把对 ...

  2. PHP面向对象魔术方法之__call函数

    l 基本介绍: (1) 当我们调了一个不可以访问的成员方法时,__call魔术方法就会被调用. (2) 不可以访问的成员方法的是指(1. 该成员方法不存在, 2. 成员方法是protected或者 p ...

  3. Python 类的魔术方法

    Python中类的魔术方法 在Python中以两个下划线开头的方法,__init__.__str__.__doc__.__new__等,被称为"魔术方法"(Magic method ...

  4. day19-Python运维开发基础(类的魔术方法)

    1. __new__魔术方法 # ### __new__ 魔术方法 ''' 触发时机:实例化类生成对象的时候触发(触发时机在__init__之前) 功能:控制对象的创建过程 参数:至少一个cls接受当 ...

  5. php类的魔术方法也就是带下划线的类方法介绍及应用

    001 PHP把所有以__(两个下划线)开头的类方法当成魔术方法,并且这些魔术方法的参数都不能通过引用传递.php的魔术方法有: 002  __construct(), __destruct(), _ ...

  6. php部分---面向对象静态、抽象类、oop接口、加载类、魔术方法、关键字。

    静态  static关键字 普通成员普通成员是属于对象的 静态成员静态成员是属于类的 普通方法里面可以调用静态成员静态方法里面不能调用普通成员self关键字 在类里面代表该类 普通类class Ren ...

  7. 魔术方法以及__call的调用

    一.什么是魔术方法? 魔术方法是php中对一类方法的统称,这些方法可以在任何类中被实现.他们通常可以完成一些特殊的无法纯粹依靠自己编程实现的功能.他们通常以双下划线"__"作为名称 ...

  8. PHP常用魔术方法(__call魔术方法:)

    魔术方法  __call <?php //文件名:index.php define('a',__DIR__); include '/IMooc/Loader.php'; spl_autoload ...

  9. 魔术方法之__call与__callStatic方法

    <?php class human{ private function t(){ } /** * 魔术方法__call * * @param string $method 获得方法名 * @pa ...

随机推荐

  1. krpano下全屏后弹窗失效问题解决方法

    原因 krpano 自身的全屏仅全屏自身,以外的html效果将无法显示 解决方法 把全屏按钮换成浏览器自身的全屏效果 解决步骤 vtourskin.xml <layer name="n ...

  2. Redis(1.10)Redis主从复制下的哨兵模式

    [0]哨兵 sentinel 的作用 其概念参考:Redis高可用(理论篇) 中的[2] [0.1]监控:监控主从是否正常 [0.2]通知:出现问题时,可以通知相关人员 [0.3]故障转移:自动主从切 ...

  3. Oracle-DQL 6- 子查询

    子查询: --查询emp表中工资高于allen的员工信息SELECT sal FROM empWHERE ename = 'ALLEN'; SELECT * FROM empWHERE sal > ...

  4. Zero Array---思维题

    链接        submit B. Zero Array time limit per test 1 second memory limit per test 256 megabytes inpu ...

  5. Java实现AES对称加密算法

    Java代码实现 import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGener ...

  6. MySql 枚举和集合 详解

    枚举与集合 枚举类型,enum 每个枚举值均有一个索引值: 在列说明中列表值所允许的成员值被从 1 开始编号. 一般来说就是单选,在定义枚举的时候列出所有的可能性: 代码如下 1. create ta ...

  7. Open-falcon监控

    https://book.open-falcon.org/zh_0_2/ 本文档记录了CentOS7.4下open-falcon-v2监控系统的部署流程,以及一些需要注意的地方. 环境准备 安装Red ...

  8. 在Window Server 2016中使用Web Deploy方式发布.NET Web应用

    1.在IIS里面点击获取新的Web平台组件 2.下载Web平台组件并安装 3.在其中搜索Web Deploy,找到3.5版本,并安装 4.继续搜索Web Deploy 3.6版本,并安装 安装好之后, ...

  9. Linux Too many open files

    Linux Too many open files 查看系统资源限制信息: sudo -s -u root -H id sudo -s lsof | awk '{ print $2 " &q ...

  10. Centos7:Redis的安装,配置及使用

    安装依赖与环境 yum install gcc-c++ 解压缩redis 编译,进入redis源码目录 make 安装 make install PREFIX=/usr/local/redis 注:P ...