PHP类的特性实例分析


Posted in PHP onSeptember 28, 2016

本文实例讲述了PHP类的特性。分享给大家供大家参考,具体如下:

对象向下传递特性

当一个对象调用一个实例方法,然后在该方法中又去静态调用另一个类的方法,则在被静态调用的方法中获得源方法中的对象(this)

<?php
class bee{
  public $a = 1;
  public function f(){
    echo $this->a;
    echo '<br>';
    @lig::f();
  }
}
class lig{
  public $a = 2;
  public function f(){
    echo $this->a;
  }
}
$obj = new bee();
$obj->f();

运行结果为:

1
1

static 后期静态绑定

static有3个不同含义的语法

函数中的静态变量

function f(){
  static $v = 1;
}

类中的静态成员

class bee{
  static $v = 1;
  static function f(){}
}

方法中的动态指定‘当前类',与self不同,static所代表的是调用本方法的类(动态),self指其代码所在的类(静态)

class bee{
  static public $a = 10;
  static public function f(){
    echo get_class().':';
    echo self::$a.'-';
    echo static::$a;
  }
}
class lig extends bee{
  static public $a = 20;
}
echo bee::f();
echo '<br>';
echo lig::f();

运行结果如下:

bee:10-10
bee:10-20

面向对象三大思想

1. 封装

就是把数据封装起来尽量不给别人看,可以认为最基本的封装是把很多的数据封装类里面,但更严格地讲,是尽量将属性做成私有的,并通过共有的方法向外提供操作。

2. 继承

3. 多态

通常指的是一个对象用同样的方法得到不同的结果
也指不同的对象使用相同的方法得到不同的结果

PS:自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字 self,parent 或 static【本例测试运行环境为php5.3.3】。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用来给图片加水印的PHP类
Apr 09 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
Feb 08 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
图文介绍PHP添加Redis模块及连接
Jul 28 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
Dec 15 PHP
Yii数据库缓存实例分析
Mar 29 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 PHP
php 访问oracle 存储过程实例详解
Jan 08 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
Mar 06 PHP
详解thinkphp的Auth类认证
May 28 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 #PHP
PHP会话操作之cookie用法分析
Sep 28 #PHP
PHP session会话操作技巧小结
Sep 27 #PHP
PHP简单预防sql注入的方法
Sep 27 #PHP
PHP数据对象PDO操作技巧小结
Sep 27 #PHP
PHP基于GD库的图像处理方法小结
Sep 27 #PHP
PHP文件上传操作实例详解
Sep 27 #PHP
You might like
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
php set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
PHP与MYSQL中UTF8编码的中文排序实例
2014/10/21 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
2015/01/09 PHP
Yii rules常用规则示例
2016/03/15 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
python检测远程udp端口是否打开的方法
2015/03/14 Python
Python isinstance函数介绍
2015/04/14 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
世界上最好的精品店:Shoptiques
2018/02/05 全球购物
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
八年级音乐教学反思
2014/01/09 职场文书
网络管理专业求职信
2014/03/15 职场文书
社区服务活动小结
2014/07/08 职场文书
开学典礼观后感
2015/06/15 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫