文档章节

php类与继承

l
 liuzhihe
发布于 2017/09/08 10:25
字数 328
阅读 1
收藏 0
点赞 0
评论 0
  1. php类自身调用的重要方式
    1. php中重要的几个调用自身的属性和方法$this->,self::,parent::以及static::
  2. php在类的继承中父类方法调用自身静态方法时,可以使用self::以及static::,两者之间的区别为
    1. 使用slef时如果子类父类的属性时,子类调动父类方法获取重写的属性仍未父类的属性值
    2. 使用static时如果子类父类的属性时,子类调动父类方法获取的重写属性为子类重写后的值
    3. 一下代码为演示项代码
      <?php
      /**
       * Created by PhpStorm.
       * User: aly
       * Date: 2016/11/30
       * Time: 14:56
       */
      
      namespace ceshi;
      
      
      class Person
      {
          public  $name='帅哥';
          protected  $age='20';
          private  $sex='男';
          public static  $a1=11;
      
          public static  $a=88;
          public function say(){
              echo $this->age;
              echo $this->name;
          }
          public static function showStatic(){
              echo static::$a1;
          }
          public  function getStatic(){
              echo self::$a1;
          }
      }
      interface IStudent{
          public function myStudent();
      }
      interface IStudent1 extends IStudent {
          public function myStudent1();
      }
      class Student extends Person implements IStudent1
      {
          public $name = '美女';
          const counts=1;
          public static $a='test';
          public static $a1='test';
          public function say()
          {
              echo $this->age;
              echo $this->name;
              echo self::counts;
              echo $this::counts;
              echo self::$a;
          }
          public function myStudent(){
      
          }
          public function myStudent1(){
      
          }
          function __construct(){
              $this->name='qi';
          }
      }
      
      $student=new Student();
      $student->getStatic();//因为使用的是self所以获取的还是父类的$a1=11的值
      Student::showStatic();//因为使用的是static所以获取的是子类的$a1=test的值
      
      echo '<br/>';
      
      

       

 

© 著作权归作者所有

共有 人打赏支持
l
粉丝 0
博文 19
码字总数 8699
作品 0
PHP中关于面向对象程序设计的相关简介

PHP面向对象程序设计 面向对象的程序设计(Object Oriented Programming) 一、面向对象程序设计的概念 PHP引进的面向对象的设计方法,将数据及处理数据的相应函数“封装”到一个“类(class...

PXZ6603 ⋅ 2016/08/20 ⋅ 0

PHP封装与继承实例

封装 把成员方法和成员属性封装到类中,隐藏属性和方法实现的细节,通过public、protected、private等限定类成员的访问权限,数据被保护在内部,只通过被授权的成员方法才可以操作,尽可能的...

kouxunli1 ⋅ 2015/01/12 ⋅ 0

PHP 方法覆盖override 与 抽象方法的实现之间的关系

Overload重载:重载是多态的基础,是方法名相同但根据参数不同做不同的处理,PHP是弱类型语言,不能直观的实现方法重载 Override覆盖:覆盖是子类继承父类方法并对齐进行重新构造,方法名相同...

big_cat ⋅ 2015/09/13 ⋅ 0

php trait 简明教程,多重继承的实现方案

http://php.net/manual/en/language.oop5.traits.php 自PHP5.4.0起,PHP实现了代码复用的一个方法,称为traints。 Traits是一种为类似PHP的单继承语音而准备的代码复用机制。Trait为了减少单...

雪之丞 ⋅ 2016/03/28 ⋅ 0

PHP中关于面向对象程序设计的相关简介

PHP面向对象程序设计 面向对象的程序设计(Object Oriented Programming) 一、面向对象程序设计的概念 PHP引进的面向对象的设计方法,将数据及处理数据的相应函数“封装”到一个“类(class...

PXZ6603 ⋅ 2016/08/20 ⋅ 0

THINKPHP的_initialize方法

1、PHP中只有construct方法为构造方法,会自动执行,_initialize方法本身不是构造方法,不会自动执行,只是在thinkphp的Controller.class.php中我们可以看到如下代码 public function constr...

tree2013 ⋅ 2016/03/11 ⋅ 0

PHP核心技术与最佳实践 读书笔记 第一章面向对象思想的核心概念

第一章 面向对象思想的核心概念 面向对象程序设计是一种程序设计范型,同时也是一种程序开发方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性,灵活性和可扩展性...

lilugirl ⋅ 2013/06/08 ⋅ 0

php 不符合常理的static self parent

没有废话 ,我想直接抛出问题。 一、php继承问题 上代码。 输出结果: 类child 如果我们接触过纯面向对象的语言 :c#/java; 按照他们的语法,以上例子将会输出 : 类father 类child 当我们在new...

宋大肿 ⋅ 01/10 ⋅ 0

关于php语言

1 首先,php语言是一门动态语言,弱类型,解释执行; 2 其次,说说php的语法,他的语法跟c++的类似,与其他脚本语言ruby/python有区别,区别只不过是语法糖多或少的问题; 3 然后,说说编程思想...

shigebeyond ⋅ 2014/07/05 ⋅ 0

PHP应用开发框架--yaf-lib

yaf-lib 基于 yaf 的应用开发框架,简单的mvc中间层继承补充,常用缓存、数据库等驱动类,添加widget组件模块,及layout插件,rpc服务化,支持hprose、yar等,支持xhprof性能调试。 requirem...

红薯 ⋅ 2015/12/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Sqoop

1.Sqoop: 《=》 SQL to Hadoop 背景 1)场景:数据在RDBMS中,我们如何使用Hive或者Hadoop来进行数据分析呢? 1) RDBMS ==> Hadoop(广义) 2) Hadoop ==> RDBMS 2)原来可以通过MapReduce I...

GordonNemo ⋅ 13分钟前 ⋅ 0

全量构建和增量构建的区别

1.全量构建每次更新时都需要更新整个数据集,增量构建只对需要更新的时间范围进行更新,所以计算量会较小。 2.全量构建查询时不需要合并不同Segment,增量构建查询时需要合并不同Segment的结...

无精疯 ⋅ 23分钟前 ⋅ 0

如何将S/4HANA系统存储的图片文件用Java程序保存到本地

我在S/4HANA的事务码MM02里为Material维护图片文件作为附件: 通过如下简单的ABAP代码即可将图片文件的二进制内容读取出来: REPORT zgos_api.DATA ls_appl_object TYPE gos_s_obj.DA...

JerryWang_SAP ⋅ 41分钟前 ⋅ 0

云计算的选择悖论如何对待?

导读 人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云...

问题终结者 ⋅ 49分钟前 ⋅ 0

637. Average of Levels in Binary Tree - LeetCode

Question 637. Average of Levels in Binary Tree Solution 思路:定义一个map,层数作为key,value保存每层的元素个数和所有元素的和,遍历这个树,把map里面填值,遍历结束后,再遍历这个map,把每...

yysue ⋅ 今天 ⋅ 0

IDEA配置和使用

版本控制 svn IDEA版本控制工具不能使用 VCS-->Enable Version Control Integration File-->Settings-->Plugins 搜索Subversion,勾选SVN和Git插件 删除.idea文件夹重新生成项目 安装SVN客户......

bithup ⋅ 今天 ⋅ 0

PE格式第三讲扩展,VA,RVA,FA的概念

作者:IBinary 出处:http://www.cnblogs.com/iBinary/ 版权所有,欢迎保留原文链接进行转载:) 一丶VA概念 VA (virtual Address) 虚拟地址的意思 ,比如随便打开一个PE,找下它的虚拟地址 这边...

simpower ⋅ 今天 ⋅ 0

180623-SpringBoot之logback配置文件

SpringBoot配置logback 项目的日志配置属于比较常见的case了,之前接触和使用的都是Spring结合xml的方式,引入几个依赖,然后写个 logback.xml 配置文件即可,那么在SpringBoot中可以怎么做?...

小灰灰Blog ⋅ 今天 ⋅ 0

冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第...

人觉非常君 ⋅ 今天 ⋅ 0

Vagrant setup

安装软件 brew cask install virtualboxbrew cask install vagrant 创建project mkdir -p mst/vmcd mst/vmvagrant init hashicorp/precise64vagrant up hashicorp/precise64是一个box......

遥借东风 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部