Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP面向对象

PHP面向对象

作者头像
全栈程序员站长
发布于 2022-07-06 06:09:19
发布于 2022-07-06 06:09:19
2.9K0
举报

大家好,又见面了,我是全栈君。

  类似JAVA,C++,PHP也有面向对象,关于类,对象。继承,封装…的概念也类似,所以这里直接来说明PHP面向对象的使用方法。

一.类的声明

  class Person{

  //成员属性

    //成员属性前必须有keyword修饰,最起要有个var

    //成员属性不要使用资源类型和空类型(resource null),最好不要在声明类时赋初值。

    var $name;    //默觉得public

    private $age;  //private:体现封装性。不能在外部赋值,获取。訪问。仅仅能在内部

    static $sex;    

  //成员方法

    function run(){  //默认public

    //方法体

    }

    function eat($food){

    //方法体

    }

    private function sleep(){

    //方法体

    }

    //魔术方法 ,已提前定义,但须在类中声明和自己定义方法体

    __construct(var2=”){  //构造方法,不要设置成private

    //对象创建完毕后第一个被对象自己主动调用(一次)的方法。若未显示声明。系统会默认生成

    //PHP中仅能有一个构造函数(PHP中不能有重名函数)。但可通过默认參数实现重载的功能

    //方法体

    }

    function __distruct(){    //析构函数,不能带參数,最好别私有

    //在对象失去引用。在被垃圾回收程序回收之前自己主动调用(栈先进后出特点。后进的先失去引用)

    //方法体

    }

    private function __set(value){  //外部为私有成员属性赋值,自己主动调用,宜为private

    //方法体

    }

    private function __get($name){      //外部获取私有成员属性,同__set

    //方法体 最后宜返回,不宜输出

    }

    private function __isset($name){      //外部获取私有成员属性是否被定义,同__set,在外部调用isset时自己主动调用,非私有直接于isset

    //方法体

    }

    private function __unset($name){      //外部获删除私有成员属性,同__isset,在外部调用usset时自己主动调用,非私有直接于unset

    //方法体

    }

  }

二.类的实例化

  $me = new Person();  //若类中有带參数的构造函数,则能够再括号里增加參数

三.成员的訪问

  //非静态(static)成员

  $me->name = “Lee”;

  $me->eat(“apple”);

  //对象内部成员间訪问

  $this->name = “me”;

  //调用父类中被重载的方法

  parent::__construct();

  //类内部静态(static),常量(const)

  self::name;

  self::eat(‘foot’);

  //类外部静态(static)。常量(const)

  Person::name;

  Person::eat(‘food’);

四.类的继承

  class Student extends Person{

  //成员  

  }

五.方法重载

  //子类中重写方法的訪问控制权限不能低于父类的

六.常见keyword和魔方方法

  除上述keyword和魔方方法外。还有:

  final:修饰类。不能被继承。修饰方法,继承后不能被覆盖。否则报错。不能修饰属性。

  static:静态成员。修饰成员变量,成员方法。唯一存在,共享.属于类,不属于对象。

  const:类内常量。声明时赋初值。仅仅读。訪问方式同static

  __clone(){  //克隆对象时又一次初始化,自己主动调用(that原对象) p1;//克隆

  //方法体

  }

  __toString(){  //输出对象时自己主动调用。返回对象都字符串形式

  //方法体

  return

  }

  __call(var2){  //调用类中不存在的方法时自己主动调用(否则报错退出运行)。var2接受參数数组

  //方法体

  }

  __sleep(){  //串行化时自己主动调用,串行化部分属性

  //方法体

  return

  }

  __wakeup(){  //反串行化时自己主动调用。为部分属性又一次赋值

  //赋值

  }

七.其它

  __autoload($lei){  //当使用的类没被定义类时自己主动调用(不声明在类中,全局函数)

  include(..$var..);  //ucfirst();全装换为小写;

  }

  serialize($lei);  //类串行化(将类保存为二十六进制字符串网络传输或持续,),unserialize()解串器

版权声明:本文博主原创文章,博客,未经同意不得转载。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117008.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
谈谈你是怎么理解面向对象的?
一道经典的面试题,当面试官问你,你是怎么理解面向对象的即OOP,你应该怎么回答呢?
PHP学习网
2022/08/03
7980
PHP 面向对象知识点
定义基本的类: 在类中我们可以定义各种数据成员和成员函数,其中public修饰的函数与变量可以在任何地方被调用,而private修饰的函数只能在本类中被调用子类不可调用,而protected修饰的则可以在本类和子类中被调用但不可以在外部调用.
王 瑞
2022/12/28
7830
PHP面向对象精要
PHP中的"重载"与其它绝大多数面向对象语言不同。传统的"重载"是用于提供多个同名的 类方法,但各方法的参数类型和个数不同。
Java架构师必看
2021/03/22
2.5K0
PHP面向对象精华
PHP面向对象精华 1使用extends实现继承以及重载、魔术方法的含义classBexten
Java架构师必看
2021/03/22
3.5K0
PHP5中的魔术方法
php中构造方法是对象创建完成后第一个被对象自动调用的方法。在每个类中都有一个构造方法,如果没有显示地声明它,那么类中都会默认存在一个没有参数且内容为空的构造方法。
用户7657330
2020/08/14
2.7K0
经验分享 | PHP-反序列化(超细的)
ps:很多小伙伴都催更了,先跟朋友们道个歉,摸鱼太久了,哈哈哈,今天就整理一下大家遇到比较多的php反序列化,经常在ctf中看到,还有就是审计的时候也会需要,这里我就细讲一下,我建议大家自己复制源码去搭建运行,只有自己去好好理解,好好利用了才更好的把握,才能更快的找出pop链子,首先呢反序列化最重要的就是那些常见的魔法函数,很多小伙伴都不知道这个魔法函数是干啥的,今天我就一个一个,细致的讲讲一些常见的魔法函数,以及最后拿一些ctf题举例,刚开始需要耐心的看,谢谢大家的关注,我会更努力的。
F12sec
2022/09/29
2.3K0
经验分享 | PHP-反序列化(超细的)
Java-面向对象
哈喽!大家好,我是小简。今天开始学习《Java-面向对象》,此系列是我做的一个 “Java 从 0 到 1 ” 实验,给自己一年左右时间,按照我自己总结的 Java-学习路线,从 0 开始学 Java 知识,并不定期更新所学笔记,期待一年后的蜕变吧!<有同样想法的小伙伴,可以联系我一起交流学习哦!>
小简
2023/01/04
1K0
Java-面向对象
PHP之十六个魔术方法详解
PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。 魔术方法包括:
botkenni
2022/03/24
1.5K0
TypeScript 面向对象程序设计(OOP)
在 JavaScript 中 ES6 之前我们使用函数(构造器函数)和基于原型来创建一个自定义的类,但这种方式总会让人产生困惑,特别是习惯了 Java、PHP 等面向对象编程的同学来说更加难以理解。
五月君
2020/05/19
8590
Java程序设计(面向对象)- 相关内容[通俗易懂]
当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具体实现方式,那么这些方法都有具体的方法体。 但是有的时候,某个父类只是知道子类应该包含怎么样的方法,但是无法准确知道子类如何实现这些方法。比如一个图形类应该有一个求周长的方法,但是不同的图形求周长的算法不一样。那该怎么办呢? 分析事物时,发现了共性内容,就出现向上抽取。会有这样一种特殊情况,就是方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。
全栈程序员站长
2022/08/04
2020
Java程序设计(面向对象)- 相关内容[通俗易懂]
【小白的java成长系列】——面向对象基础
今天来说说java面向对象的知识点~事实上。java在其发展过程中可以成功。非常大一部分原因是其面向对象的思想~
全栈程序员站长
2022/07/09
1430
【小白的java成长系列】——面向对象基础
面向对象的基础类与对象
我们回想一下,这几天我们完成一个需求的步骤:首先是搞清楚我们要做什么,然后在分析怎么做,最后我们再代码体现。一步一步去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,完成我们的需求。
星哥玩云
2022/09/08
9330
面向对象的基础类与对象
PHP中魔术方法的用法
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。
Java架构师必看
2021/03/22
4210
原 荐 Scala的面向对象
----------目录--------------------------------------------------------- 1.Scala简介和安装 2.Scala语法介绍 3.Scala的函数 4.Scala中的集合类型 5.Scala的面向对象 ------------------------------------------------------------------------------------------------------------- Scala的面向对象 一、
云飞扬
2018/05/07
9040
原                    荐                                                            Scala的面向对象
Java面向对象——类及类的成员
本讲主要初步了解面向对象,介绍了类的组成部分,并且通过Person类来讲解了类的属性和方法,因为Java是面向对象开发的,所以在项目中会创建很多类和对象,所以这一讲是十分重要的。我们也认识了方法的定义和调用,后续也会写很多方法进行实战。
小明爱吃火锅
2023/09/28
3360
Java面向对象编程高级
在main方法中定义一个变量count,当一个小孩加入游戏后count++,最后个count 就记录有多少小孩玩游戏 。
timerring
2023/04/21
1.6K0
Java面向对象编程高级
php面试之面向对象的相关知识(上篇)
面向对象分上下篇,这里上篇涉及到的内容有:一、面向对象与面向过程有什么区别?  二、面向对象有什么特征?   三、什么是构造函数和析构函数?   四、面向对象的作用域范围有哪几种?   五、PHP 中魔术方法有哪些?
友儿
2022/09/11
9170
第4章 类与面向对象编程第4章 类与面向对象编程
在前面的章节中,我们学习了Kotlin的语言基础知识、类型系统等相关的知识。在本章节以及下一章中,我们将一起来学习Kotlin对面向对象编程以及函数式编程的支持。
一个会写诗的程序员
2018/08/17
1.8K0
第4章 类与面向对象编程第4章 类与面向对象编程
PHP面向对象基础总结
近来参加了几场PHP工程师的面试,但是笔试题答得都不理想,回来总结了一下失败的原因,是没看PHP手册。几家公司的PHP基础面试题都可以在PHP手册上找到。哎,现在才知道最好的面试宝典是PHP手册。
用户7657330
2020/08/14
1.6K0
5:面向对象总结
高级类特性 Staitc:关键字,用于修饰类的成员(属性、方法、内部类)。 例如每一个中国人都共享这个国家的名称,不需要为每个中国人的实例对象中单独分配一个用于代表国家名称的变量。 在访问允许的情况下,static修饰的成员可以通过类名.的方式访问,在不创建对象实例的情况下也可以 Static修饰的成员叫类成员,为类的所有实例所共享 在static方法内部只能访问类的static属性,不能访问类的非static属性。但是,非static方法可以访问static成员 因为不需要实例就可以访问static方法
六月的雨
2018/05/14
7540
相关推荐
谈谈你是怎么理解面向对象的?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档