首页 > 编程语言 >php面向对象二

php面向对象二

时间:2024-05-30 23:11:28浏览次数:21  
标签:静态方法 常量 构造方法 对象 面向对象 php 方法 属性

一、访问对象属性和方法的操作

在php中,访问对象的属性和方法,使用箭头(->)来访问:$obj->name、$obj>showinfo()

二、伪变量$this使用

面向对象中的$this代表当前对象
$this代表当前对象,用来调用对象的属性和方法
$this只能在成员方法中存在,其他方法都不能使用

三、定义类的常量

常量:就是值永远不变的梁,常量不能修改,常量也不能删除。
提示:在一次http请求过程中,常量不能修改。
类常量定义使用const关键字,Define()定义的常量为全局变量。
类常量,就是类的常量,与对象无关。
类常量,只能通过类名来调用(类名::常量);成员的东西,只能通过对象来调用。
访问类常量,是通过范围解析符(::)来访问类的常量。例如:Student::TITLE
访问对象的内容,是通过箭头(->)来访问的。例如:$obj->name、$obj->show()
类常量在内存中只有一份,不会随着对象的增加而增加。类常量可以被所有对象共享。
好处:节省内存。例如:班级名称、ICP备案号等
//定义格式:
const 常量名 = 常量值;

//语法说明:
//1.常量没有权限访问符
//2.const定义的常量,一般认为是局部常量;
//3.常量名不加$符号,尽量全大写;
//4.常量的值,必须是一个固定的值;

四、静态属性和静态方法

Static关键字修饰的属性,就是静态属性;
Static关键字修饰的方法,就是静态方法
静态属性,就是类的属性,与类相关,与对象无关;
静态方法,就是类的方法,与类相关,与对象无关;
静态属性和静态方法,是通过“类名::静态属性或静态方法”方式来访问的。
静态属性和静态方法,在内存中只有一份,不会随着对象的增加而增加。
好处:节省内存。可以被所有对象去共享。
静态属性的值是可以改变的,可以被所有对象共享。
静态属性和静态方法,是有权限限制的。

区分类常量和静态属性
举例:“某班”的班级名称用类常量定义比较好。
“全班人数”用静态属性来定义比较好。
特点:上面两个名称是所有同学共享;类常量永远不变,人数可能会变(静态属性


五、self关键字

$this代表当前对象,self代表当前类
$this用来调用对象的东西:成员属性、成员方法、
self用来调用类的东西:类常量、、静态属性、静态方法
$this使用箭头(->)来调用成员属性、成员方法
self使用(::)来调用类常量、静态属性、静态方法;
$this只能用在成员方法中;self可以用在成员方法、静态方法中

六、构造方法

当使用new关键字,创建一个类的对象时,第1个自动调用的方法,就是构造方法。
构造方法的名称是固定的:__construct()
构造方法可以有参数,也可以没有参数
当new一个类时,类名后跟的小括号的参数,就是传给构造方法的。例如:new Student(‘张三’,34)
构造方法的作用:对象初始化。例如:给私有属性赋值、数据库对象初始化(连通、选择数据库)
提示:构造方法只能定义一个;构造方法可有可无。
构造方法必须是成员方法。
//构造方法的定义格式
权限控制符 function __construct(形参1,形参2,.....){
对象初始化的代码;

七、析构方法

当销毁一个对象前,自动调用的方法,就是析构方法。
析构方法的名称是固定的:__destruct()
析构方法一定没有参数,析构方法一定是成员中方法
析构方法的作用:垃圾回收。例如:可以断开数据库的连接、在线人数。
//析构方法的定义格式
权限控制符 function __destruct(){
垃圾回收的功能代码;

标签:静态方法,常量,构造方法,对象,面向对象,php,方法,属性
From: https://www.cnblogs.com/caidao666/p/18223457

相关文章

  • 编译安装PHP服务(LAMP3)
    目录1.初始化设置,将安装PHP所需软件包传到/opt目录下(1)关闭防火墙(2)上传软件包到/opt目录2.安装GD库和GD库关联程序,用来处理和生成图片3.配置软件模块4.编译及安装5.优化把PHP的可执行程序文件放入路径环境变量的目录中便于系统识别6.复制模版文件作为PHP的主配置文件,......
  • Python—面向对象小解(3)
    一、多态多态指的是一类事物的多中形态相同的方法,产生不同的执行结果运算符+*的多态int+int加法计算str+str字符串拼接list+list列表的数据合并在python中可以使用类实现一个多态效果在python中使用重写的方式实现多态(1)定义两个类:老师、车;(2)定义老师类......
  • DeerOJ的前端框架介绍-Web文件夹和App文件夹(route.php)
    Web文件夹下的结构DeerOJ的前端框架参考了部分Lavarel框架,做到兼顾代码的可维护性和可阅读性。具体的维护目录文件结构如下:注意到web文件夹下的index.php这是整个前端程序的main程序,当服务段收到请求后,根据.htaccess文件指定使用index.php文件来生成网页,并把网页数......
  • DeerOJ的前端框架介绍-config.php
    config.php文件config.php文件是PHP应用程序的配置文件,具体用于DeerOnlineJudge(DeerOJ)系统的设置。它定义了应用程序的基本信息、数据库连接、Web服务器设置、安全配置、邮件配置、评测机配置以及一些开关设置。基本信息(profile)部分参数解释如下:oj-name:在线......
  • python大数据 pycharm中的面向对象-文件读写-异常
    一、继承#类的定义#旧式类定义一般在定义单个类时使用class类名:name=None deffunc(self):pass#新式类定义一般在继承时使用class类名(指定需要继承的类):name=Nonedeffunc(self):pass#新式类定义cl......
  • 关于PHP的webshell免杀小结
    0X00普通的一句话木马(适用于CTF和小站)<?phpeval($_POST['a']);?>//函数的相似替换<?phpassert($_POST['a']);?> <?php@eval($_POST['110']);?>与第一个一句话木马相比多了一个"@"字符,我们发现这个字符的含义是在php语法中表示抑制错误信息即使有错误也不返回;属于不......
  • mac系统如何切换php版本
    brewinstallshivammathur/php/[email protected]安装的这个库安装8.1。8.3替换即可#卸载所有PHP版本brewuninstall--ignore-dependenciesphpbrewuninstall--ignore-dependenciesphp@7.4brewuninstall--ignore-dependenciesphp@8.1brewuninstall--ignore-dependen......
  • 如何设计简单词法分析器 C++(面向对象)
    前言与其他教程不同,本文实现的词法分析器借鉴于C++输入流我搜过的教程基本上都是从状态转换的思想入手,虽然本文思路类似于状态转换,但也有独到之处。从面向对象的角度其他教程大多采用面向过程,二者都能解决问题,各有优劣。只不过我从面向对象的角度,给读者提供一个新......
  • JavaSE 面向对象程序设计 文件File 介绍练习加千行代码详解
    介绍在Java中,File类是用于表示文件和目录路径的抽象。它提供了一组方法来创建、删除、重命名、检查文件/目录的存在性、以及查询文件/目录的属性等功能。File类可以用于执行文件系统操作,如创建新文件、删除文件、检查文件是否存在等。目的是把字符串先表示为路径然后转化......
  • 使用 Bootstrap 5 无法在 php 文件中实现智能识别
    我使用VisualStudioCode在php文件中使用Bootstrap5。Bootstrap会在我编写HTML代码时向我显示建议,如第一张图片。但当我编写HTML代码时,它什么也不显示,如第二张图片。我尝试使用了许多扩展,并在设置中将php的执行路径和"php":"html"设置为emmet语言。我......