详谈php静态方法及普通方法的区别


Posted in PHP onOctober 04, 2016

如下所示:

<?php 
header('content-type:text/html;charset=utf-8'); 
/* 
普通方法,存放类内,只有一份

静态方法,也是存放于类内,只有一份

区别在于:普通方法需要对象去调用,需要绑定$this 
即,普通方法,必须要有对象,然后让对象来调用 

而静态方法,不属于哪一个对象,因此不需要绑定$this 
即,不需要对象也可以调用 
*/

class Human{ 
  static public $head=1; 
  public function easyeat(){ 
    echo '普通方法吃饭<br />'; 
  } 
  static public function eat(){ 
    echo '静态方法吃饭<br />'; 
  } 
  public function intro(){ 
    echo $this->name; 
  } 
} 
Error_reporting(E_ALL|E_STRICT); 
//此时没有对象!方法可以执行 
Human::eat(); 
/* 
以下方法easyeat是一个非静态方法,就由对象来调用,但,用类来调用此方法来也可以执行,而严格状态下,此方法会执行,同时报错, 
Strict Standards: Non-static method Human::easyeat() should not be called statically in D:\application\PHPnow-1.5.6\htdocs\yan18\types\staticfun.php on line 32

*/ 
Human::easyeat(); 
/* 
接上,从逻辑来理解,如果用类名静态调用非静态(普通)方法 
比如:intro() 
那么,这个$this是指哪个对象呢?? 
因此会报错,因为找不到对象! 
Fatal error: Using $this when not in object context in D:\application\PHPnow-1.5.6\htdocs\yan18\types\staticfun.php on line 23 
*/ 
Human::intro();

/* 
如上分析,其实,非静态方法,是不能由类名静态调用的,但目前,php中的面向对象检测不够严格,只要静态方法中没有$this关键字,就会转化成静态方法来处理! 
*/ 
$li=new Human(); 
$li->eat();

/* 
总结: 
类》访问->静态方法(类的方法)->可以 
类》访问->普通方法(对象的方法)->不可以(虽然方法里不用$this关键字时,可以!但不支持这种写法)

对象》访问》静态方法(类的方法)->可以 
对象》访问》普通方法(对象的方法)->可以

*/ 
?>

以上就是小编为大家带来的详谈php静态方法及普通方法的区别全部内容了,希望大家多多支持三水点靠木~

PHP 相关文章推荐
php GeoIP的使用教程
Mar 09 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
May 07 PHP
php操作mysqli(示例代码)
Oct 28 PHP
php中AES加密解密的例子小结
Feb 18 PHP
php获取表单中多个同名input元素的值
Mar 20 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
CodeIgniter配置之config.php用法实例分析
Jan 19 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 PHP
微信接口生成带参数的二维码
Jul 31 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
Oct 23 PHP
php操作路径的经典方法(必看篇)
Oct 04 #PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 #PHP
浅谈PHP中静态方法和非静态方法的相互调用
Oct 04 #PHP
PHP图片添加水印功能示例小结
Oct 03 #PHP
PHP通过CURL实现定时任务的图片抓取功能示例
Oct 03 #PHP
PHP实现生成带背景的图形验证码功能
Oct 03 #PHP
php使用CutyCapt实现网页截图保存的方法
Oct 03 #PHP
You might like
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
Vue中常用rules校验规则(实例代码)
2019/11/14 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
对python调用RPC接口的实例详解
2019/01/03 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
python实现双色球随机选号
2020/01/01 Python
python连接PostgreSQL过程解析
2020/02/09 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
python爬虫用scrapy获取影片的实例分析
2020/11/23 Python
python爬虫基础之urllib的使用
2020/12/31 Python
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
税务专业毕业生自荐信
2013/11/10 职场文书
产品质量保证书
2014/04/29 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
单位授权委托书范本
2014/09/26 职场文书
机关作风建设整改方案
2014/10/27 职场文书
班主任2015新年寄语
2014/12/08 职场文书
超市工作总结范文2014
2014/12/19 职场文书
建议书格式
2015/02/04 职场文书
2015年度学校应急管理工作总结
2015/10/22 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
python playwrigh框架入门安装使用
2022/07/23 Python