0

0

分享php中一些常用的方法知识

零下一度

零下一度

发布时间:2017-06-23 15:20:57

|

1611人浏览过

|

来源于php中文网

原创

 

立即学习PHP免费学习笔记(深入)”;

JTBC网站内容管理系统5.0.3.1
JTBC网站内容管理系统5.0.3.1

JTBC CMS(5.0) 是一款基于PHP和MySQL的内容管理系统原生全栈开发框架,开源协议为AGPLv3,没有任何附加条款。系统可以通过命令行一键安装,源码方面不基于任何第三方框架,不使用任何脚手架,仅依赖一些常见的第三方类库如图表组件等,您只需要了解最基本的前端知识就能很敏捷的进行二次开发,同时我们对于常见的前端功能做了Web Component方式的封装,即便是您仅了解HTML/CSS也

下载

  前  言

 OOP 

  学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)。

 

立即学习PHP免费学习笔记(深入)”;

1  PHP中的抽象类与抽象方法
   
     1、什么是抽象方法?
              没有方法体 {} 的方法,必须使用abstract 关键字修饰。这样的方,我们叫做抽象方法。
                    abstract function say(); //    抽象方法

          2、什么是抽象类?
           包含抽象方法的类就叫抽象类。抽象类必须使用abstract关键字修饰。
                  abstract class Person{}

          3、抽象类的注意事项
                ①    抽象类可以包含非抽象方法;
                ② 包含抽象方法的类,一定是抽象类;
                    抽象类,并不一定必须包含抽象方法;
                ③ 抽象类,不能实例化。
                  (抽象类中可能包含抽象方法,抽象方法没有方法体,实例化调用没有意义。)
               
                   我们使用抽象类的目的!就是限制实例化!!!        

          4、 子类继承抽象类,那么子类必须重写父类的所有抽象方法。除非子类也是抽象类。
         
          5、使用抽象类的作用?
              ① 限制实例化。(抽象类是一个不完整的类,里面的抽象方法没有方法体,所以不能实例化)
              ② 抽象类为子类的继承提供一种规范。子类继承一个抽象类,则必须包含并且实现抽象类中已定的抽象方法。
         
         

 

立即学习PHP免费学习笔记(深入)”;

2  静态属性和静态方法
  
     1、static
              ① 可以修饰属性和方法,分别称为静态属性、静态方法,也叫类属性、类方法;
              ② 静态属性、静态方法,只能使用类名直接调用。
                  使用"类名::$静态属性" 、 "类名::静态方法()"
                  Person::$sex;  Person::say();
              ③ 静态属性、方法,在类装载时就会声明。先于对象产生;
              ④ 静态方法中,不能调用非静态属性或方法;
                非静态方法,可以调用静态属性或方法;    
              (因为静态属性和方法在类装载时就已经产生,而非静态的属性方法、此时还没有实例化诞生)
              ⑤ 在类中,可以使用self关键字,代指类名。
                  class Person{
                  static $sex = "nan";
                  function say(){
                      echo self::$sex;
                      }
                  }
              ⑥ 静态属性是共享的。也就是new很多对象也是共用一个属性。

   2、final
          ① final 修饰类,此类为最终类,不能被继承;
          ② final    修饰方法,此方法为最终方法,不能被重写!
          ③ final 不能修饰属性。
     
      3、const关键字;
            在类中声明常量,不能使用define()函数!必须使用const关键字。
           与define()声明类似,const关键字声明常量不能带$,必须全部大写!
           常量一旦声明,不能改变。调用时与static一样,使用类名帝爱用 Person::常量。
     
      【小总结】  几种特殊操作符
      1、 .      只能连接字符串; "".""
      2、 => 声明数组是,关联键与值["key"=>"value"]
      3、 -> 对象($this new出的对象)低啊用成员属性、成员方法。
      4、  : :  ① 使用parent关键字,调用父类中的同名方法;parent::say();
                ② 使用类名(和self)调用类中的静态属性、静态方法、以及常量。
     
     
         

 

立即学习PHP免费学习笔记(深入)”;

3  PHP中的单利模式(单态模式)
   
   单利模式也叫单态模式
     
     
       可以保证,一个类只能有一个对象实例。
     
       实现要点:
            ① 构造函数私有化,不允许使用new关键字创建对象。
            ② 对外提供获取对象的方法。在方法中判断对象是否为空,如果为空则创建对象并返回,如果不为空直接放回,
          ③ 实例对象的属性以及过去对象的方法必须都是静态的。
            ④ 之后,创建对象只能使用我们提供的静态方法。      $s1 = Singleton::getSingle();
            
         

 

立即学习PHP免费学习笔记(深入)”;

 1 class Singleton{ 2         private static $single=null; 3         private function __construct(){} 4         static function getSingle(){ 5             if(!self::$single){ 6                 self::$single = new self(); 7             } 8             return self::$single; 9         }10         function __destruct(){11             echo "啊,我被销毁了。";12         }13     }14     15     $s1 = Singleton::getSingle();16     $s2 = Singleton::getSingle();17     $s3 = Singleton::getSingle();18     $s4 = Singleton::getSingle();
单利模式简单的代码

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

4  串行化与反串行化(序列化与反序列化)
   
            1、串行化:将对象通过一系列操作,转化为一个字符串你的过程,称为串行化;
              2、反串行化:将串行化后的字符串,再转为对象的过程,称为反串行化;
              3、什么时候使用串行化?
                  ① 对象需要在网络中传输的时候;
                  ② 对象需要在文件或者数据库中持久保存的时候;
              4、怎么实现对象串行化与反串行化?
              串行化: $str = serialize($duixiang);
              反串行化: $duixiang = unserialize($str);
              5、__sleep()魔术方法:
                  ① 当执行对象串行化的时候,会自动执行__sleep()函数;
                  ② __sleep()函数要求返回一个数组,数组中的值,就是可以串行化的属性;不在数组中的属性,不能被串行化;
                  function __sleep(){
                  return array("name","age");//只有name/age两个属性可以串行化
                  }
              6、__wakeup()魔术方法:
                  ① 当反串行化对象时,自动调用__wakeup()方法;
                  ② 自动调用时,用于给反串行化产生的新对象属性,进行重新复制;
                  function __wakeup(){
                      $this->name = "李四";
        

 

立即学习PHP免费学习笔记(深入)”;

5  约束类型 
   
    1、类型约束:是指在变量前,加上数据类型,用于约束此变量只能存放对应的数据类型.(这种操作常见于强类型语言,在PHP中,只能实现数组和对象的类型约束)
      2、如果类型约束为某一个类,则本类以及本类的子类对象,都可以通过;
     
      3、在PHP中,类型约束,只能发生在函数的形参中。
          class Person{}
          class Student extend
      
       function func(Person $p){
              //约束函数的参数,只接受Person类及Person子类
             echo "111";
             echo $p->name;
             }
          func(new Person()); √
          func(new Student()); √
       func("111");    ×
     
          形如 new Person();的形式,我们称其为“匿名函数”;
    
         

 

立即学习PHP免费学习笔记(深入)”;

6  魔术方法小总结
   
  1、__construct(): 构造函数,new一个对象时,自动调用
      2、__destruct(): 析构函数,当一个对象被销毁前,自动调用
      3、__get():访问类中私有属性时,自动调用。传递读取的属性名,返回$this->属性名
      4、__set():给类的私有属性赋值时,自动调用。传递需要设置的属性名和属性值
      5、__isset():使用isset()检测对象私有属性时,自动调用。传递检测的属性名,返回isset($this->属性名);
      6、__unset():使用unset()删除对象私有属性时,自动调用。传递删除的属性名,方法中执行unset($this->属性名);
      7、__toString():使用echo打印对象时,自动调用。返回想要打印对象时,现实内容;返回必须是字符串;
      8、__call():调用一个类中未定义或未公开的方法时,自动调用。传递被调用的函数名,和参数列表数组;
      9、__clone():当使用clone关键字,克隆一个对象时,自动调用。作用是为新克隆的对象进行初始化复制;
      10、__sleep():对象序列化时,自动调用。返回一个数组,数组中的值就是可以序列化的属性。
      11、__wakeup():对象反系列化时,自动调用。为反序列化新产生的对象,进行初始化复制;
      12、__autoload():需要在类外部声明函数。当实例化一个为生命的类时,自动调用。传递实例化的类名,可以使用类名自动加载对应的类文件。
    
     

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

学习时候的笔记,可能会有一些错误的地方,欢迎各位的批评指点。

反思,复盘,每天收获一点---------------------期待更好的自己

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

178

2026.01.28

包子漫画在线官方入口大全
包子漫画在线官方入口大全

本合集汇总了包子漫画2026最新官方在线观看入口,涵盖备用域名、正版无广告链接及多端适配地址,助你畅享12700+高清漫画资源。阅读专题下面的文章了解更多详细内容。

35

2026.01.28

ao3中文版官网地址大全
ao3中文版官网地址大全

AO3最新中文版官网入口合集,汇总2026年主站及国内优化镜像链接,支持简体中文界面、无广告阅读与多设备同步。阅读专题下面的文章了解更多详细内容。

79

2026.01.28

php怎么写接口教程
php怎么写接口教程

本合集涵盖PHP接口开发基础、RESTful API设计、数据交互与安全处理等实用教程,助你快速掌握PHP接口编写技巧。阅读专题下面的文章了解更多详细内容。

2

2026.01.28

php中文乱码如何解决
php中文乱码如何解决

本文整理了php中文乱码如何解决及解决方法,阅读节专题下面的文章了解更多详细内容。

4

2026.01.28

Java 消息队列与异步架构实战
Java 消息队列与异步架构实战

本专题系统讲解 Java 在消息队列与异步系统架构中的核心应用,涵盖消息队列基本原理、Kafka 与 RabbitMQ 的使用场景对比、生产者与消费者模型、消息可靠性与顺序性保障、重复消费与幂等处理,以及在高并发系统中的异步解耦设计。通过实战案例,帮助学习者掌握 使用 Java 构建高吞吐、高可靠异步消息系统的完整思路。

8

2026.01.28

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

24

2026.01.27

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

122

2026.01.26

edge浏览器怎样设置主页 edge浏览器自定义设置教程
edge浏览器怎样设置主页 edge浏览器自定义设置教程

在Edge浏览器中设置主页,请依次点击右上角“...”图标 > 设置 > 开始、主页和新建标签页。在“Microsoft Edge 启动时”选择“打开以下页面”,点击“添加新页面”并输入网址。若要使用主页按钮,需在“外观”设置中开启“显示主页按钮”并设定网址。

72

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 9.9万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号