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 相关文章推荐
在PHP3中实现SESSION的功能(一)
Oct 09 PHP
解决phpmyadmin 乱码,支持gb2312和utf-8
Nov 20 PHP
浅析memcache启动以及telnet命令详解
Jun 28 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
Dec 24 PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
php返回json数据函数实例
Oct 09 PHP
PHP7正式版测试,性能惊艳!
Dec 08 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
Jun 28 PHP
php实现xml与json之间的相互转换功能实例
Jul 07 PHP
微信公众平台开发(五) 天气预报功能开发
Dec 03 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
JS实现的生成随机数的4个函数分享
2015/02/11 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
Node.JS文件系统解析实例详解
2017/05/15 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
微信小程序Flex布局用法深入浅出分析
2019/04/25 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
javascript实现文字跑马灯效果
2020/06/18 Javascript
纯js+css实现在线时钟
2020/08/18 Javascript
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
浅谈Django的缓存机制
2018/08/23 Python
python实现飞机大战游戏
2020/10/26 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
机械设计毕业生自荐信
2014/02/02 职场文书
抽样调查项目计划书
2014/04/24 职场文书
公务员培的训心得体会
2014/09/01 职场文书
教育合作协议范本
2014/10/17 职场文书
信访维稳工作汇报
2014/10/27 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers