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中通过smtp发邮件的类,测试通过
Jan 22 PHP
PHP4中session登录页面的应用
Jul 25 PHP
php中定义网站根目录的常用方法
Aug 08 PHP
php对二维数组进行排序的简单实例
Dec 19 PHP
php计算两个整数的最大公约数常用算法小结
Mar 05 PHP
PHP使用CURL模拟登录的方法
Jul 08 PHP
php轻量级的性能分析工具xhprof的安装使用
Aug 12 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
php日期操作技巧小结
Jun 25 PHP
php注册和登录界面的实现案例(推荐)
Oct 24 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
咖啡因含量是由谁决定的?低因咖啡怎么来?低因咖啡适合什么人喝
2021/03/06 新手入门
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
php数组去除空值函数分享
2015/02/02 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
Js 本页面传值实现代码
2009/05/17 Javascript
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
jQuery的extend方法【三种】
2016/12/14 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
Python re模块介绍
2014/11/30 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
python 获取字符串MD5值方法
2018/05/29 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
铭万公司.net面试题笔试题
2014/07/20 面试题
法律专业推荐信范文
2013/11/29 职场文书
一年级学生期末评语
2014/04/21 职场文书
好人好事演讲稿
2014/09/01 职场文书
经理助理岗位职责
2015/02/02 职场文书
体育活动总结
2015/02/04 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL