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 相关文章推荐
PHPCMS的使用小结
Sep 20 PHP
php设计模式 Singleton(单例模式)
Jun 26 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 PHP
关于PHP自动判断字符集并转码的详解
Jun 26 PHP
php获取CSS文件中图片地址并下载到本地的方法
Dec 02 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
php cli配置文件问题分析
Oct 15 PHP
PHP函数rtrim()使用中的怪异现象分析
Feb 24 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
PHP异常类及异常处理操作实例详解
Dec 19 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 PHP
Laravel 自带的Auth验证登录方法
Sep 30 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
浅析php插件 HTMLPurifier HTML解析器
2013/07/01 PHP
php使用date和strtotime函数输出指定日期的方法
2014/11/14 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
js上传图片及预览功能实例分析
2015/04/24 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
深入浅析Node环境和浏览器的区别
2018/08/14 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
[01:13]这,就是刀塔
2014/07/16 DOTA
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
python调用摄像头拍摄数据集
2019/06/01 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码
2020/08/19 HTML / CSS
食品行业求职人的自我评价
2014/01/19 职场文书
婚礼主持结束词
2014/03/13 职场文书
《第一朵杏花》教学反思
2014/04/16 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
2014年三万活动总结
2014/04/26 职场文书
员工辞退通知书
2015/04/17 职场文书
个人求职意向书
2015/05/11 职场文书
HTML常用标签超详细整理
2022/03/19 HTML / CSS