文档章节

php __call,__callStatic

小张525
 小张525
发布于 02/22 10:04
字数 291
阅读 3
收藏 0
PHP
// demo1.php
<?php

class test
{
	public  function run()
	{
		static::who();
		test::who();
		self::who();
	    $this->who();	
	}

	public  static  function __callStatic($a,$b)
	{
		var_dump('a static call');
	}


	public function __call($a,$b)
	{
		var_dump('a call');
	}
}


$obj  = new test();
$obj->run();
?>

//output
string(6) "a call"
string(6) "a call"
string(6) "a call"
string(6) "a call"


//demo2.php
<?php

class test
{
	public static function run()
	{
		static::who();
		test::who();
		self::who();	
	}

	public  static  function __callStatic($a,$b)
	{
		var_dump('a static call');
	}


	public function __call($a,$b)
	{
		var_dump('a call');
	}
}


$obj  = new test();
$obj::run();

?>

//output

string(13) "a static call"
string(13) "a static call"
string(13) "a static call"

这个实例主要说明调用方法的不同 ,__call,__callStatic方法的执行不同.

第一个中,  如果用$obj->run() 的方法调用,那么在 run 方法内使用this是没有问题的, 而此时的静态方法调用是否被替换为this方法调用, 猜想是这样的, 具体以要看源码.

在第二个实例中, 使用静态方法调用, 则直接会使用__callStatic, 说明static 调用方法, 对函数内部的要求更严格一点,

该问题是否可以使用程序在内存空间中的访问方法来解释呢.

 

© 著作权归作者所有

共有 人打赏支持
上一篇: 单链表
下一篇: C 语言val
小张525
粉丝 6
博文 105
码字总数 34031
作品 0
乌鲁木齐
程序员
私信 提问
Laravel5.2之PHP重载(overloading)

说明:本文主要讲述PHP中重载概念,由于Laravel框架中经常使用这块知识点,并且PHP的重载概念又与其他OOP语言如JAVA中重载概念不一样,故复习并记录相关知识点。同时,作者会将开发过程中的一...

botkenni
2016/10/24
2
0
PHP魔术方法汇总

魔术方法是PHP面向对象中特有的特性。它们在特定的情况下被触发,都是以双下划线开头,你可以把它们理解为钩子,利用模式方法可以轻松实现PHP面向对象中重载(Overloading即动态创建类属性和...

xdl丶辉
2016/08/10
102
1
php 魔术方法 重载

重载 属性重载与方法重载 PHP所提供的"重载"(overloading)是指动态地"创建"类属性和方法。我们是通过魔术方法(magic methods)来实现的。 当调用当前环境下未定义或不可见的类属性或方法时...

蛋定龙
2015/10/16
53
0
如何使用 Laravel Facades ?

Facade 布局是在面向对象编程中经常使用的一种软件设计布局方式。Facade 实际上是一种包括复杂函数库的类,提供了更加简洁易读的接口。Facade 布局还能为一组结构复杂、设计简陋的 API 提供统...

OneAPM蓝海讯通
2016/01/05
14
0
Lavavel笔记 Eloquent ORM分页源码分析

安装了laravel-debugbar后打开一个列表页面,发现页面输出有两个 select count(*) 语句,这是一个严重的设计缺陷呀。 查看代码 $users = User::where('votes', '>', 100)->paginate(15);$cou......

daweilang
2017/03/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux shell使用代理

export http_proxy=http://proxyAddress:port export http_proxy=http://proxyAddress:port

萌萌哒的小萝卜
27分钟前
1
0
Krpano 插入视频/音频

视频 <hotspot name="videospot" url="%SWFPATH%/plugins/videoplayer.swf" alturl="%SWFPATH%/plugins/videoplayer.js" videourl="%SWFPATH%/image/video.flv|%SWFPATH%/......

华山猛男
30分钟前
2
0
el-select使用方法及遇到数据回显的坑

<el-select v-model="temp.lang" class="filter-item" placeholder="Please select"> <el-option v-for="item in langs" :key="item.value" :label="item.label" :value="item.value"/> </el......

BraveLN
31分钟前
1
0
百度贴吧自动签到

实现百度贴吧自动签到功能 1.编写签到Python脚本 源码地址:https://github.com/peizhouyu/tieba-sign.git #! python3# -*- coding:utf-8 -*-import requestsimport reimport hash...

MrPei
36分钟前
1
0
windows nginx

之前一直是在linux上使用nginx,今天百度了一下,发现原来nginx在windows也有软件。 最近在研究jeecg-boot,现在越来越多的框架开始采用前后分离的模式了,看来也是时候跟进了。 nginx: dow...

miaojiangmin
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部