php面向对象 字段的声明与使用
字段是用于描述类的么个方面的性质。
字段是用于描述类的某个方面的性质。它与一般的PHP 变量非常相似,只是有一些细微的差别,本节将介绍这些差别。这一节还将讨论如何声明和使用字段,下一节则介绍如何使用字段的作用域来进行访问限制。
声明字段
字段声明的有关规则与变量声明的规则非常类似;实际上,可以说没有区别。因为PHP 是松散类型的语言,字段甚至不需要声明;可以由类对象同时创建和赋值,但很少会这样做。相反,常见的做法是在类开始处声明字段。此时可以为字段赋初值。示例如下:
代码如下:
class Employee
{
public $name="John";
private $wage;
}
在这个例子中,两个字段name 和wage 前面都有作用域描述符(public 或Private ) ,这是声明字段时的常用做法。声明之后,每个字段都可以在作用域描述符所指示的范围内使用。如果你不了解作用域对于类字段有何作用,不要担心,后面将会介绍这个问题。
使用字段
与变量不同,字段要使用->操作符引用,而不是使用美元符。此外,因为字段的值一般是给定对象所特有的,所以它与那个对象具有如下的相互关系:
代码如下:
$object->field
例如,在本章开始时描述Employee类包括字段name、title和wage .如果创建了一个名为$employee的Employee类型对象,就可以如下引用这些字段:
代码如下:
$employee->name
$employee->title
$employee->wage
在定义字段的类中引用字段时,还要使用->操作符,但此时不使用相应的类名,而是使用$this 关键字。$this表示要引用当前类(要访问或操作的字段所在的类)中的字段。因此,如果要在上述Employee类中创建一个设置姓名字段的方法,则如下所示:
代码如下:
function setName($name)
{
$this->name=$name;
}
相关推荐
-
php面向对象中的魔术方法中文说明
1.__construct() 实例化对象是被自动调用.当__construct和以类名为函数名的函数 同时存在时调用__construct,另一个不背调用. 类名为函数名的函数为老版的构造函数. 2.__destruct() 当删除一个对象或一个对象操作结束是被调用. 3.__call() 对象调用某个方法.若方法不存在,这调用__call 这个方法 4.__get() 读取一个对象属性,如果对象属性是私有的会调用它 5.__set() 给一个对象属性赋值时如果属性是私有的会调用它 6.__t
-
php学习笔记 面向对象中[接口]与[多态性]的应用
复制代码 代码如下: <?php /* 接口技术 * * 接口是一种特殊的抽象类,抽象类又是一种特殊的类 * * 接口和抽象类是一样的作用 * * 因为在PHP是单继承的,如果使用抽象类,子类实现抽象类就不能再去继承其他的类了 * * 如果既想实现一些规范,又想继承其他类.就要使用接口. * * 接口和抽象类的对比 * * 1.作用相同,都不能创建对象,都需要子类去实现 * * 2.接口的声明和抽象类不一样 * * 3.接口被实现方式不一样 * * 4.接口中的所有方法必须是抽象方法,只能声明抽
-
PHP面向对象——访问修饰符介绍
PHP中有三种访问修饰符,分别是: public(公共的.默认) protected(受保护的) private(私有的) 它们可以分别用在类的属性和方法上(类的属性和方法统称为类的成员),用来修饰类成员的访问权限. public(公共的.默认) 在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限. /* 以下两个方法声明访问权限效果相同 */ function say(){}; publilc function say(){}; 当类的成员被声明为public的访问修饰
-
PHP笔记之:基于面向对象设计的详解
public 表示全局,类内部外部子类都可以访问: 复制代码 代码如下: <?php class Test{ public $name='Janking', $sex='male', $age=23; function __construct(){ echo $this->age.'<br />'.$this->name.'<br />'.$this->
-
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程.这种情况称为异常. PHP 5 添加了类似于其它语言的异常处理模块.在 PHP 代码中所产生的异常可被 throw 语句抛出并被 catch 语句捕获.需要进行异常处理的代码都必须放入 try 代码块内,以便捕获可能存在的异常.每一个 try 至少要有一个与之对应的 catch.使用多个 catch 可以捕获不同的类所产生的异常.当 try 代码块不再抛出异常或者找不到 catch 能匹配所抛出的异常时,PHP 代码就会在跳转到最后一
-
PHP面向对象之旅:深入理解static变量与方法
static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为"类属性"或"类方法". 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号"::"调用. static关键字可以用来修饰变量.方法. 不经过实例化,就可以直接访问类中static的属性和static的方法. static 的属性和方法,只能访问static的属性和方法,不能类访问非静态的属性和方法.因为静态属性和方法被创建时
-
浅析php面向对象public private protected 访问修饰符
PHP中有三种访问修饰符,分别是: public(公共的.默认) protected(受保护的) private(私有的)public(公共的.默认)在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限.protected(受保护的)被声明为protected的成员,只允许该类的子类进行访问.private(私有的 ) 被定义为private的成员,对于类内部所有成员都可见,没有访问限制.对类外部不允许访问. 图解demo 复制代码 代码如下: cl
-
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象:我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象一.封装性 封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作. php提供了三种访问控制修饰符 public 表示全局,本类内部,类外部,子类都可以访问 protected 表示受保护的,只有本类或子类可以访问 private 表示
-
用穿越火线快速入门php面向对象
复制代码 代码如下: <?php /* *用穿越火线快速入门php面向对象! *php目前已经成为国内的主流web developer的首选开发语言,其强大的面向对象容易使初学者找不到思绪,一头雾水! *,借助此文希望对初学者有所帮助,假设Crossfire用php来开发. * 1类与对象 */ class Crossfire { public $Category='1,2,3'; //枪械种类,3个选择武器类别 public $Weapon='ak|awp|m4a1';//购买的武器,拥有的武
-
基于PHP 面向对象之成员方法详解
用一个列子来读解成员方法:大家可以自己动手写一写,加深理解. 这样一个需求; 希望人可以说话, 做算术题.......,这样就需要使用到成员方法:1.添加speak 成员方法,输出 我是小明2.添加jisuan 成员方法,可以计算从 1+..+1000的结果3.修改jisuan 成员方法,该方法可以接收一个数n,计算 1+..+n 的结果4.添加add 成员方法,可以计算两个数的和 参考代码: 复制代码 代码如下: <?php class Person{ public $name;
-
PHP面向对象法则
你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚.但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起 . ----- Arthur J.Riel (1)所有数据都应该隐藏在所在的类的内部. (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者. (3)尽量减少类的协议中的消息. (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝).相等性判断.正确输出内容.从ASCII描述解析等等]. (5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接
-
PHP面向对象概念
关键字和特殊变量 new,class,extends.这三个,大家都懂得. ::,范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员.方法和常量.还可以用于覆盖类中的成员和方法. parent和self.parent指的就是派生类在 extends 声明中所指的基类的名字.这样做可以避免在多个地方使用基类的名字. $this 伪变量.$this指向当前的实例.$this却不一定是方法所属的对象.有时候类A内的代码会调用类B的一个静态
-
php学习笔记之面向对象编程
复制代码 代码如下: <?phpclass db { private $mysqli; //数据库连接 private $options; //SQL选项 private $tableName; //表名 public function __construct($tabName) { $this->tableName = $tabName; $this->db (); } private function d
-
PHP面向对象学习笔记之二 生成对象的设计模式
一. 单例模式(Singleton) 如果应用程序每次包含且仅包含一个对象,那么这个对象就是一单例. 用来替代全局变量. 复制代码 代码如下: <?php require_once("DB.php"); class DatabaseConnection{ <STRONG><SPAN style="COLOR: #ff0000">public static function get()</SPAN></STRONG>
-
深入分析php之面向对象
以前对面向对象仅限于死记硬背型,工作这么久了,回过头来看又是一翻体悟,供大家看看.1.finalfinal:php5新增一个final关键字.如果父类中的方法被声明为final,则子类无法覆盖该方法:如果一个类被声明final,则不能被继承. 复制代码 代码如下: class BaseClass{ public function test(){ ehco "test"; } final public function moreTest(){
-
PHP 面向对象详解
对象的主要三个特性 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为. 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型. 对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同. 面向对象模型 面向对象的概念: oop(面向对象的编程)它能是其代码更加简洁易于维护并且具有更强的可重性 什么是类: 类是具有相同属性和服务的一组对象的集合比如说人,书,轮船,车都属于类,他为属于该类的对象做了一个统一的抽象描述,在编程的语言中类是一个单独的程序,它应该有一个类
-
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
一.抽像类(abstract) 在我们实际开发过程中,有些类并不需要被实例化,如前面学习到的一些父类,主要是让子类来继承,这样可以提高代码复用性 语法结构: 复制代码 代码如下: abstract class 类名{ 属性 $name; 方法(){} //方法也可以为abstract 修饰符 function 方法名(){} } 例: 复制代码 代码如下: abstract class animal{ public $name; public $age; //抽象方法不能有方法体,主要是为了让子
-
PHP面向对象学习笔记之一 基础概念
1> if( "false" ) 等效于 if( true), 因为非空字符串是true 2> 检查数据类型: is_array(); is_object(); is_string(); is_null(); is_integer(); 3> PHP5 引入类的类型提示(type hint),用来约束一个方法的参数类型(不是基本数据类型,而是类):将类名放在需要约束的方法参数之前. 例如: function write( ShopProduct $shopProduc
随机推荐
- redis内部数据结构之SDS简单动态字符串详解
- .NET微信开发之PC 端微信扫码注册和登录功能实现
- ajax结合豆瓣搜索结果进行分页完整代码
- java自定义日志输出文件(log4j日志文件输出多个自定义日志文件)
- JavaScript中使用typeof运算符需要注意的几个坑
- JSDoc 介绍使用规范JsDoc的使用介绍
- php中禁止单个IP与ip段访问的代码小结
- python获得一个月有多少天的方法
- Vue网页html转换PDF(最低兼容ie10)的思路详解
- NodeJS实现阿里大鱼短信通知发送
- MySQL/MariaDB/Percona数据库升级脚本
- Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
- jquery 取子节点及当前节点属性值
- jquery radio的取值_radio的选中_radio的重置方法
- javascript教程之不完整的继承(js原型链)
- 一道关于JavaScript变量作用域的面试题
- C语言 存储类详解及示例代码
- php URL编码解码函数代码
- Android编程使用HTTP协议与TCP协议实现上传文件的方法
- 点九图片的显示内容区域应作何理解