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 foreach 使用&amp;(与运算符)引用赋值要注意的问题
Feb 16 PHP
mysql总结之explain
Feb 27 PHP
PHP 文件系统详解
Sep 13 PHP
php中如何使对象可以像数组一样进行foreach循环
Aug 09 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
Nov 08 PHP
php生成随机颜色方法汇总
Dec 03 PHP
php 无限级分类 获取顶级分类ID
Mar 13 PHP
Yii2使用自带的UploadedFile实现的文件上传
Jun 20 PHP
php实现当前页面点击下载文件的简单方法
Sep 22 PHP
thinkPHP微信分享接口JSSDK用法实例
Jul 07 PHP
php实现微信企业付款到个人零钱功能
Oct 09 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校验ISBN码的函数代码
2011/01/17 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
2018/03/18 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
[01:31:03]DOTA2完美盛典全回顾 见证十五项大奖花落谁家
2017/11/28 DOTA
python 随机数生成的代码的详细分析
2011/05/15 Python
python实现flappy bird小游戏
2018/12/24 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
python要安装在哪个盘
2020/06/15 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
西班牙伏林航空公司:Vueling
2016/08/05 全球购物
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
CK加拿大官网:Calvin Klein加拿大
2020/03/14 全球购物
《草原的早晨》教学反思
2014/04/08 职场文书
工程材料采购方案
2014/05/18 职场文书
最美家庭活动方案
2014/08/31 职场文书
申报材料格式
2014/12/30 职场文书
出纳试用期自我评价
2015/03/10 职场文书
格林童话读书笔记
2015/06/30 职场文书
js实现自动锁屏功能
2021/06/02 Javascript