IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP面向对象 -> 正文阅读

[PHP知识库]PHP面向对象

目录

类成员

访问限定修饰符

类内部对象

构造方法


类的定义与实例化对象

<?php
	class My{   //创建一个My类对象,名字遵循驼峰式写法
	}
$m = new My;   //实例化对象,并保存。或者new My()
var_dump($m);  //打印对象,对象不能使用echo输出。 object(My)[1]
?>

类成员

类成员,指直接定义在类结构{}内部的一级成员,即直接依赖{}的成员。在PHP中类成员有三种:成员变量(属性)成员方法(成员函数)类常量

属性

  • 成员变量:就是在类结构{}下直接定义的变量,但是定义的方式与普通变量稍微有点不同,需要在变量名字前使用一个关键字public,定义语法: public 变量名 = 值; ,成员变量可以赋值也可以不赋值。
  • 成员变量访问:成员变量必须通过对象才能进行访问,也就是需要先通过实例化得到对象,然后通过对象实现对成员变是的增册改查。访问语法:$对象名->属性名
<?php
	class Buyer{
	    public $money = 0;  
	}
$m = new Buyer;   //实例化对象,并保存。或者new My()
//访问属性,输出0
echo $m->money;
//修改属性值,输出10
echo $m->money = 10; 
//删除属性
unset($m->money);
//新增属性,输出20
$m->money = 20;
echo $m->money;
?>

方法

成员方法:就是在类结构下定义的函数,函数内部的内容与原来函数结构一样,可以有分支、循环结构等

<?php
	class Buyer{
		//定义方法
		function Display(){  //function前加public也可以不加
			echo 123;
		}
	}
//实例化对象
$xm = new Buyer;
//访问成员方法
$xm->Display();

?>

类常量

类常量是在类中定义的常量。类常量的定义只能使用一种方式:const 常量名 = 值

类常量不是由对象来进行访问,这里暂时先不介绍。

<?php
	class Buyer{
		const PI = 3.14;
	}
?>

访问限定修饰符

访问修饰限定符,是一种用在属性或者方法前的修饰关键字,是用来控制属性或者方法的访问位置的。在PHP中访问修饰限定符分为三种:publicprotectedprivate

首先需要明白一组概念类的内部和外部

  • 类内部:是指类定义的内容内部,即类名后内部
  • 类外部:是指类定义的外部内容,即类名之外的所有地方

类成员的访问权限控制是内部访问(私有)、链内部访问(受保护)和全部访问(公有)

public

public公有,即表示所修饰的内容(属性或者方法)可以在当前类的内部访问,也可以在类的外部访问。如下在类的外部进行访问

<?php
	class Buyer{
		//公有属性
		public $count = 100;
	}
$s = new Buyer();
echo $s->count;   //输出100
?>

protected与private

  • protected受保护的,即表示所修饰的内容只能在类的内部访问
  • private:私有,即表示所修饰的内容只能在当前类的内部|访问
<?php
	class Buyer{
		protected $money = 100;
		private $age = 18;
	}
$s = new Buyer();
echo $s->money;   //protected修饰的成员不能在外部访问
echo $s->age;    //private修饰的成员不能在类外部访问(当前类)
?>

访问修饰限定符不只是限定属性,也用来限定方法。定义的方法如果没有指定修饰限定符,默认为public

类内部对象

类成员属性和方法的访问必须通过对象才能访问,类外部可以通过实例化得到类对象从而实现成员访问,但是类内部又不能访问类外部的对象(未知),此时类的内部就内置了一个对象$this代表来访对象。

1.尝试在类内部方法中访问属性

<?php
	class Saler{
		//属性
		public $count = 100;
		protected $discount = 0.8;
		private $money = 100;
		public function getAll(){
			echo $count,$discount,$money;
		}
	}
$s = new Saler;
$s->getAll();    //报错,显示未定义的的变量
?>

原因:方法本质是定义在内部的函数,因此受限于作用域的问题,在方法内部访问的变量系统会认定为局部变量(必须内部定义或者参数传入),否则就会提示未定义

类内部访问类成员,需要通过对象来进行访问

$this

系统内部能够检测到哪个对象在调用方法,并且能够复制对应的对象,这个就是类成员方法内置对象$this

<?php
	class Saler{
		//属性
		public $count = 100;
		protected $discount = 0.8;
		private $money = 100;
		public function getAll(){
			//$this代表的就是相应的对象
			echo $this->count,$this->discount,$this->money;
		}
	}
$s = new Saler;
$s->getAll();   //正常输出
?>

构造方法

思考:属性一般不会在类定义的时候就初始化,那实例化对象的时候,属性的数据不都是为空吗?这样的数据有什么价值呢?
引入:属性属于对象使用,在类中初始化的确没有太多价值,但是对象实例化之后如果属性数据为空也没有价值。因此通常属性都是在对象实例化的时候进行初始化的,这个时候就需要用到一种自动构造的方式来完成。

构造方法_construct(),是一种类结构特有的特殊方法,该方法由系统规定好,开发人员在定义的时候只需要写抄一遍,有了构造方法的类在实例化对象之后,对象就会自动调用。

如下,我们在实例化对象后,并没有调用类中的函数,可是依然输出了hello。我们也可以在构造函数中调用一个类中的函数。

<?php
	class Saler{
		public function __construct(){
			//$this代表的就是相应的对象
			echo 'hello';
		}
	}
$s = new Saler;  //输出hello
?>

初始化属性

<?php
	class Saler{
		public $name;
		public $age;
        //构造方法,初始化属性
		public function __construct($name,$age){
			$this-> name = $name;
			$this-> age = $age;
		}
	}
$s = new Saler('Lucy',18);
var_dump($s);
?>

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:19:43  更:2021-08-24 15:20:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:34:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码