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入门小知识
Mar 24 PHP
php操作excel文件 基于phpexcel
Jul 02 PHP
php array_unique之后json_encode需要注意
Jan 02 PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 PHP
php绘制圆形的方法
Jan 24 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
Sep 30 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
10个值得深思的PHP面试题
Nov 14 PHP
smarty模板数学运算示例
Dec 11 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
PHP实现提取多维数组指定一列的方法总结
Dec 04 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
简化php模板页面中分页代码的解析
2009/02/06 PHP
php代码运行时间查看类代码分享
2011/08/06 PHP
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
php中动态修改ini配置
2014/10/14 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
JavaScript操作URL的相关内容集锦
2015/10/29 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
新手vue构建单页面应用实例代码
2017/09/18 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
python简单实现获取当前时间
2016/08/27 Python
python读取excel表格生成erlang数据
2017/08/26 Python
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
Python Selenium截图功能实现代码
2020/04/26 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
比利时买床:Beter Bed
2017/12/06 全球购物
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
医学毕业生自荐信
2013/10/11 职场文书
市场安全管理制度
2014/01/26 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
英文导游词
2015/02/13 职场文书
考试后的感想
2015/08/07 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers