PHP基础之面向对象

php面向对象的基础题 1、什么是面向对象?(理解着回答)答:面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP;通俗的解释就是“万物皆对象”,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数。现在纯正的OO语言主要是Java和C#,PHP、C++也支持OO,C是面向过程的。2、简述 private、 protected、 p... 阅读详情

类常量

  • 定义形式:
const 常量名 = 常量值;
const P1 = 1; 
  • 使用形式:
类名::常量名;  
$v1 = C1::P1
//Const定义的常量是局部常量,只能在类中使用;
//Define()定义的常量永远是全局常量,在任何地方都能使用。

普通属性(实例属性)

  • 定义形式:
public $属性名 = 初始值;
  • 使用形式:
    $对象->属性名;
    $v1 = $对象->属性名;    //赋值
    echo  $对象->属性名;    //输出

静态属性

  • 定义形式:
static $属性名 = 初始值;
  • 使用形式:
类名::$静态属性名;

静态属性不属于任何一个对象,只属于该类本身,理解为该类的所有对象所共有的数据。

静态属性和类常量在内存中都只有一份,但静态属性的值可变,而常量值不能变(不同点)。

普通方法(实例方法)

  • 定义形式:
function 方法名(形参1=默认值,形参2=默认值,...){
    //方法体
}
  • 调用形式:
$对象名->方法名([实参1,实参2,...]);

静态方法

静态方法不需要所在类被实例化就可以直接使用。

  • 定义形式:
static function 方法名(形参1=默认值,形参2=默认值,...){
    //方法体
}
  • 调用形式:
类名::方法名(实参1,实参2,....)

类没有创建,静态属性就可以直接使用。那静态属性在什么时候在内存中被创建?

在PHP中没有看到相关的资料,引用Java中的概念解释具有通用性:

静态属性和方法,在类被调用时创建。

类被调用,是指类被创建或者类中的任何静态成员被调用。

构造方法(__construct)

  • 构造方法私有化
//用于单例模式
private function __construct(){
}
  • 子类构造方法中调用父类的构造方法
parent::__contrust
  • 子类普通方法中调用父类实例方法
parent::方法名()
  • 静态方法中调用静态属性
self::$p2

析构方法(__destruct)

  1. 当对象销毁前,自动调用析构方法。
  2. 对象销毁有两种情况:脚本执行完毕自动销毁,手动销毁对象(unset)。
  3. 析构方法也是成员方法,析构方法一定没有参数。
  4. 析构方法的作用:用于释放内存、清理内存垃圾,如断开数据库连接。

$this、self、parent三个关键字的区别

$this
  1. this代表调用当前属性或方法的这个对象。调用类中的成员方法或成员变量,只能通过伪变量$this调用。
  2. this是指向对象实例的一个指针,在实例化的时候来确定指向;
self
  1. self是指向类本身,也就是self是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量。
  2. 使用类里面静态(一般用关键字static)的成员,必须使用self来调用。
  3. 使用self来调用静态变量必须使用 :: (域运算符号)
  4. self是对类本身的一个引用,一般用来指向类中的静态变量;
  5. self::$instance instanceof self 或 new self()
parent
  1. parent一般是指父类这个类本身,一般使用parent来调用父类的构造函数。
  2. parent是对父类的引用,一般使用parent来调用父类的构造方法。

普通方法和静态方法的区别

  • 普通方法,存放类内,只有一份
    1. protect 只能被本类和它的继承类调用
    2. private 只能被本类调用
    3. public 公有属性和方法,类内部和外部的代码均可访问。
  • 静态方法,也是存放于类内,只有一份

Static关键字:

声明类成员或方法为static,就可以不实例化类而直接访问。不能通过一个对象来访问其中的静态成员(静态方法除外)。
由于静态方法不需要通过对象即可调用,所以伪变量$this在静态方法中不可用。
静态属性不可以由对象通过->操作符 来访问。
用::方式调用一个非静态方法会导致一个E_STRICT级别的错误。
就像其它所有的PHP静态变量一样,静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。 可以把静态属性初始化为整型或数组,但不能指向另一个变量或函数返回值,也不能指向一个对象。

  • static静态方法和静态属性总结:
    1. 静态属性不需要实例 即可调用。因为静态属性存放的位置是在类里,调用方法为”
    2. 类名::属性名”;
    3. 静态方法不需要实例化即可调用。同上
    4. 静态方法不能调用非静态属性。因为非静态属性需要实例化后,存放在对象里;
    5. 静态方法可以调用非静态方法,使用 self 关键词。php里,一个方法被self:: 后,它就自动转变为静态方法;
    6. 静态方法可以被继承,但不可以被重写,在子类里定义相同名字的方法,只能算是隐藏。如果子类中出现同名的静态方法和字段,将重新创建新的同名的静态字段和方法,隐藏原来的静态方法和字段,而不是重写和覆盖
    7. 静态属性可以被继承。

值传递与引用传递

  • PHP默认“值传递”的数据类型:字符串型、整型、浮点型、布尔型、数组。
  • PHP默认“引用传递”的数据类型:对象、资源。

最终类和最终方法

  1. Final关键字修饰的类,就是最终类;
  2. Final关键字修饰的方法,就是最终方法;
  3. 最终类,就是最后的类,只能用来实例化,不能再继承。
  4. 最终方法,就是最后的方法,不能重写,但可以继承。
  5. 最终类是十分完善的类,不需要升级和扩展。
  6. 最终方法是十分完善的方法,不需要重写。
  7. 提示注意:最终类和最终方法不能同时存在。

抽象类和抽象方法

  1. Abstract关键字修饰的类,就是抽象类;
  2. Abstract关键字修饰的方法,就是抽象方法;
  3. 抽象类:该类不能直接实例化,只能用来继承。例如:基础类都是抽象类。
  4. 抽象方法:该方法必须先继承,后重写。
  5. 抽象方法只有方法名称,没有方法体,没有大括号;
  6. 抽象方法作用:就是方法的命名规范,也可以理解为子类的方法的大纲、变相的监督的机制。
  7. 抽象方法在子类必须要重写。
  8. 类中有一个方法为抽象方法,该类必须是抽象类;

多态

  1. 类的多态,就是类的多种形态。
  2. 类的多态,主要指方法的重载或方法重写。
  3. 方法重载:在一个作用下,定义两个同名的方法,PHP不支持。
  4. 方法重写:父类已存在的方法,在子类用同样的名字再定义一次。
  5. 为什么要进行方法重写呢?为了功能的升级。子类的定义同名方法,比父类更完善、更详细。
  6. 如果子类定义了同名方法,它的优先级高于父类的同名方法。

重写要求

  1. 子类重写的方法名称,必须要与父类方法名称一致;
  2. 子类重写方法的参数个数,必须要与父类方法参数个数一致;
  3. 子类重写方法的类型,必须与父类方法类型一致,要是成员方法都是成员方法,要是静态方法都是静态方法。
  4. 子类重写方法的权限,不能低于父类方法权限。
  5. 如果父类方法权限为public,子类重写方法权限必须是public。
  6. 如果父类方法权限为protected,子类重写方法权限是public、protected。
  7. 如果父类方法权限为private,子类无法继承,也无法重写。
PHP面向对象基础 - VisonMe 其中,accountNumber是公共属性,balance是私有属性,pin是受保护属性。面向对象编程(Object-Oriented Programming,简称OOP)是一种流行的编程范式,它通过将数据和操作封装在对象中,以模拟现实世界的实体和交互。通过使用类、对象、属性、方法、构造函数和访问控制,我们可以以面向对象的方式编写更加结构化和可维护的PHP代码。在上面的代码中,我们创建了一个名为$person的Person对象,并设置其name和age属性,然后调用sayHello方法输出问候信息。 阅读详情

相关推荐

ffmpeg 4.4 cenc-aes-ctr 加解密 MP4 工程性质分析

ffmpeg 4.4 cenc-aes-ctr 加解密 MP4 工程性质分析

Dream_Dynasty的博客 3047

php学习笔记--面向对象oop及注意点

常量的定义及调用:const PI = 3.1492; 调用:类名::PI构造函数public function __contrust(){} 子类调用父类的方法: parent::__contrust();

编程是一种思考方式! 641

Halcon窗体开发避坑指南:C#自定义控件实现7大图像交互功能

本文详细介绍了如何利用C#封装自定义Halcon控件,以解决原生HWindowControl功能不足的问题。通过实战代码,展示了如何实现图像按比例显示、鼠标拖动缩放、灰度值读取、图像保存、截图及图形叠加等七大核心交互功能,并重点剖析了内存管理、坐标转换等开发避坑要点,帮助开发者构建稳定可复用的机器视觉组件库。

weixin_29251131的博客 292

PHP面向对象基础

本篇文章主要讲解PHP面向对象基础

没有网络安全就没有国家安全 933

DSP28335做FFT傅里叶变换

1. 看了一下例程,居然没有FFT的例程,难道这个DSP28335不能做FFT吗?对了C2000系列是有C2000 ware这个库的。方便很多,不过目前不确定在C5000上运行的FFT能直接迁移到DSP28335上行不?测试了一下,是可以的,因为都是用的math.h,下面的一些正弦函数基本一样的 2. 硬件简介,其中DSP28335和TLV320AIC23B之间使用I2C接口进行寄存器配置,...

weixin_30390075的博客 3332

【系统架构设计师-2026上半年真题】案例分析-参考答案及详解(回忆版)

架构评估与设计:通过入侵检测系统的案例分析,阐述质量属性(性能/可用性/安全性/可修改性)的匹配方法,推荐管道-过滤器风格处理实时数据流,并设计8个核心构件实现数据采集到告警的全流程处理。 高并发优化方案: 分析悲观锁(排他锁/共享锁)与乐观锁的特性差异,提出乐观锁通过版本号/CAS实现,悲观锁适用于强一致性场景。 给出Redis优化三手段:分布式锁控制临界资源、Lua脚本保证原子操作、热点数据多级缓存,结合消息队列削峰填谷。 分层架构实践: 智

数据知道的博客 1689

PHP面向对象基础总结

近来参加了几场PHP工程师的面试,但是笔试题答得都不理想,回来总结了一下失败的原因,是没看PHP手册。几家公司的PHP基础面试题都可以在PHP手册上找到。哎,现在才知道最好的面试宝典是PHP手册。 下面是一些PHP面向对象基础知识的摘录,摘录内容来自PHP5.1手册。 1.类的变量成员叫做“属性”,或者叫“字段”、“特征”,在本文档统一称为“属性”。 2.属性中的变量可以...

Jack huang 的技术笔记 484

Xilinx FPGA平台DDR3设计保姆式教程(1)DDR3基础简介

xilinx平台DDR3设计(1)DDR3简介 如果我们只是拿来用ddr搬砖,那么它就简单,知道IP怎么使用就好,但是要想知其所以然,理论知识是必备的,这也是我们初学者所欠缺的东西,慢慢修炼吧! 目录 一、DDR3简介 二、地址的概念及容量计算 三、重要给概念理解 3.2 列地址脉冲选通潜伏期 3.4 掩码 四、参考资料 一、DDR3简介 DDR3全称double-data-rate 3 synchronous dynamic RAM,即第三代双倍速率同步动态随机存储器。...

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 1万+

PHP基础知识 - PHP面向对象OOP

PHP面向对象OOP

Chon.Wang 4414

Windows 11 - 打开操作安全中心提示 “需要使用新应用以打开此 Windowsdefender 链接“ 解决方案(电脑更新了 Win11 系统版本后,想关闭病毒防护盾牌的时候提示打不开)

Windows 11 - 打开操作安全中心提示 "需要使用新应用以打开此 Windowsdefender 链接" 解决方案(电脑更新了 Win11 系统版本后,想关闭病毒防护盾牌的时候提示打不开),当您点击任务栏上要关闭安全中心防护设置时,这种情况打不开怎么解决,怎么办,Windows安全中心,病毒和威胁保护,账户保护,防火墙和网络保护,设备安全性。

🏆 前端领域优质创作者 1万+

Python 爬虫实战:微信搜一搜内容深度爬取(含搜索结果解析与企业级架构设计)

在信息爆炸的时代,微信搜一搜已成为海量信息获取的重要入口。无论是个人知识探索,还是企业舆情监控,掌握微信搜一搜内容的深度爬取能力具有巨大价值。本文将从基础原理到企业级实现,全面解析微信搜一搜爬虫的开发过程。

yansideyucsdn的博客 2455

PHP面向对象01:面向对象基础

PHP面向对象01:面向对象基础 一、关键字说明 二、技术实现 1. 定义类 2. 类成员 三、 访问修饰限定符 1. public 2. protected 3. private 4. 空修饰限定符 四、类内部对象 五、构造和析构 1. 构造方法 2. 析构方法 六、范围解析操作符 1. 访问类常量 2. 静态成员 3. self关键字 七、类的加载 1. 手动加载 2. 自动加载 八、对象克隆

iFulling的博客 906

【PINN物理信息网络】基于PINN物理信息网络求解圆柱坐标中的热方程(python)

【PINN物理信息网络】基于PINN物理信息网络求解圆柱坐标中的热方程(python)

k8291121的博客 2274

PHP基础之面向对象讲解

php/* 成员变量 */var $url;var $title;/* 成员函数 */?类使用class关键字后加上类名定义。类名后的一对大括号{}内可以定义变量和方法。类的变量使用var来声明, 变量也可以初始化值。函数定义类似PHP函数的定义,但函数只能通过该类及其实例化的对象访问。变量$this代表自身的对象。PHP_EOL为换行符。

上善若泪 1671

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

php面向对象基础,php面向对象(一) 初窥(php面向对象基础介绍)

初窥php面向对象1.类:类就是属性和方法的集合 是一个抽象的概念比如生活中的“人”,"汽车"2.对象:对象是具体的事物 比如一叫“小强”的人 一辆叫“奥迪a7”的汽车3.类和对象的关系:类是抽象的出来的某种事物的集合 对象是类的一个具体实例1:创建一个Person类第一步:声明一个Person类class Person{//Person类的成员属性 声明类的属性要用var关键字var $name...

weixin_30359265的博客 130

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

PHP基础知识 = 面向对象?

这,才是专业 PHP 工程师的起点。

长风破浪会有时的博客 897

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

PHP面向对象基础笔记一

难点:学习面向对象思想和语法,理解思想。PHP5相对4添加了面向对象全部的基本语法。一. 面向对象的编程思想 Object Oriented(1) 以事件为中心的编程思想(2) 分析出解决问题的所需要的步骤(3) 再用函数把步骤实现(4) 使用的时候调用二. 什么是对象(1) 对象表示具体的事物和抽象的规则、计划和事件。(2) 状态和行为用数据值来描述状态。操作是

xw1985520的博客 371

php面向对象基础一

php面向对象基础一   每学一门后端语言,都会先让你了解什么面向对象?现在我们就一起去了解什么是面向对象。 什么是面向对象?!什么是面向过程?! 面向对象:把构成问题事务分解成各个对象,建立对象的目的描述某个事物在整个解决问题的步骤中的行为。 面向过程:分析出解决问题所需要的步骤。 1.类 类的定义:  class 类名{   字段(属性)   方法(函数)  } ...

ermaner666的博客 234

php面向对象实践,PHP面向对象学习一:对象基础实践

引语:阅读深入PHP《面向对象、模式实践》书实践~~~/*** 对象基础归纳整理 (来源:深入PHP《面向对象、模式与实践》)* ===============知识点================* 类和对象:声明类及实例化对象* 构造方法:自动加载对象* 基本数据类型和类的类型:为什么类型很重要* 继承(inheritance)* 可见性:整合对象接口并保护类中的方法和属性不受干涉(publi...

weixin_30258621的博客 183

PHP编程进阶:从基础到进阶面向对象编程

在PHP的广阔世界里,面向对象编程(OOP)不仅是构建复杂、可维护应用的关键基石,更是提升代码质量、促进团队协作的强大工具。本指南旨在通过系统化的学习与实践,引领您深入探索PHP面向对象编程的精髓。从面向对象的基本概念出发,我们将逐步揭开类与对象的神秘面纱,理解它们在内存中的运行机制,并掌握封装、继承等核心概念。通过本指南,您将学会如何设计清晰、可复用的类结构,利用封装保护数据的安全,通过继承实现代码的复用与扩展。

你华还是你华 996

php的类和面向对象,PHP基础学习 之 类与面向对象

一、类的定义与对象创建1.定义一个类class Car {//定义属性public $name = '汽车';//定义方法public function getName() {//方法内部可以使用$this伪变量调用对象的属性或者方法return $this->name;}创建对象第一种方式:$car = new Car();第二种方式:用变量来创建$className = 'Car';$c...

weixin_36280540的博客 224

php面向对象的基础

1,类的结构声明方式:   class 类名 {                //类体      }2,属性和方法的定义;  使用构造函数:  使用析构函数:  类的实例化:3,控制访问权限:public , private protected;4,类的继承:class B extends A { }    重载:子类和父类函数同名; 用final对继承和

张新竹的博客 393

php面向对象基础

还未开始。。。 静态方法的应用场景; static的使用; 常用的魔术方法; 接口的定义; public、private、protected的区别; 抽象方法;

小男孩tom的博客 460

php面向对象知识点比较,PHP面向对象基础知识总结

PHP面向对象基础知识总结作者:jao 发布于:2012-12-23 12:24分类:PHP教程下面是一些PHP面向对象基础知识的摘录,摘录内容来自PHP5.1手册。1.类的变量成员叫做“属性”,或者叫“字段”、“特征”,在本文档统一称为“属性”。2.属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指php脚本在编译阶段时就为常数,而不是在编译阶段之后在运行阶段运算出的常数。3.在类...

weixin_34811804的博客 200
上一篇: JavaScript复习之内置对象
下一篇: JavaScript复习之文档对象模型
HansMa
博客等级 码龄12年 24粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值