PHP笔记之:基于面向对象设计的详解
public 表示全局,类内部外部子类都可以访问;
代码如下:
<?php
class Test{
public $name='Janking',
$sex='male',
$age=23;
function __construct(){
echo $this->age.'<br />'.$this->name.'<br />'.$this->sex.'<br />';
}
function func(){
echo $this->age.'<br />'.$this->name.'<br />'.$this->sex.'<br />';
}
}
$P=new Test();
echo '<br /><br />';
$P->age=100;
$P->name="Rainy";
$P->sex="female";
$P->func();
?>
Public
private表示私有的,只有本类内部可以使用;
代码如下:
<?php
class Test{
private $name='Janking',
$sex='male',
$age=23;
function __construct(){
$this->funcOne();
}
function func(){
echo $this->age.'<br />'.$this->name.'<br />'.$this->sex.'<br />';
}
private function funcOne(){
echo $this->age.'<br />'.$this->name.'<br />'.$this->sex.'<br />';
}
}
$P=new Test();
echo '<br /><br />';
$P->func();
$P->age=100; // Cannot access private property Test::$age
$P->name="Rainy"; // Cannot access private property Test::$name
$P->sex="female"; // Cannot access private property Test::$female
$P->funcOne(); // Call to private method Test::funcOne() from context ''
?>
Private
protected表示受保护的,只有本类或子类或父类中可以访问; 和封装有关的魔术方法:
__set():是直接设置私有成员属性值时,自动调用的方法
__get():是直接获取私有成员属性值时,自动调用的方法
__isset(); 是直接isset查看对象中私有属性是否存时自动调用这个方法
__unset(); 是直接unset删除对象中私有属性时,自动调用的方法
相关推荐
-
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程.这种情况称为异常. PHP 5 添加了类似于其它语言的异常处理模块.在 PHP 代码中所产生的异常可被 throw 语句抛出并被 catch 语句捕获.需要进行异常处理的代码都必须放入 try 代码块内,以便捕获可能存在的异常.每一个 try 至少要有一个与之对应的 catch.使用多个 catch 可以捕获不同的类所产生的异常.当 try 代码块不再抛出异常或者找不到 catch 能匹配所抛出的异常时,PHP 代码就会在跳转到最后一
-
php学习笔记 面向对象中[接口]与[多态性]的应用
复制代码 代码如下: <?php /* 接口技术 * * 接口是一种特殊的抽象类,抽象类又是一种特殊的类 * * 接口和抽象类是一样的作用 * * 因为在PHP是单继承的,如果使用抽象类,子类实现抽象类就不能再去继承其他的类了 * * 如果既想实现一些规范,又想继承其他类.就要使用接口. * * 接口和抽象类的对比 * * 1.作用相同,都不能创建对象,都需要子类去实现 * * 2.接口的声明和抽象类不一样 * * 3.接口被实现方式不一样 * * 4.接口中的所有方法必须是抽象方法,只能声明抽
-
PHP面向对象——访问修饰符介绍
PHP中有三种访问修饰符,分别是: public(公共的.默认) protected(受保护的) private(私有的) 它们可以分别用在类的属性和方法上(类的属性和方法统称为类的成员),用来修饰类成员的访问权限. public(公共的.默认) 在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限. /* 以下两个方法声明访问权限效果相同 */ function say(){}; publilc function say(){}; 当类的成员被声明为public的访问修饰
-
PHP面向对象概念
关键字和特殊变量 new,class,extends.这三个,大家都懂得. ::,范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员.方法和常量.还可以用于覆盖类中的成员和方法. parent和self.parent指的就是派生类在 extends 声明中所指的基类的名字.这样做可以避免在多个地方使用基类的名字. $this 伪变量.$this指向当前的实例.$this却不一定是方法所属的对象.有时候类A内的代码会调用类B的一个静态
-
PHP 面向对象详解
对象的主要三个特性 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为. 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型. 对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同. 面向对象模型 面向对象的概念: oop(面向对象的编程)它能是其代码更加简洁易于维护并且具有更强的可重性 什么是类: 类是具有相同属性和服务的一组对象的集合比如说人,书,轮船,车都属于类,他为属于该类的对象做了一个统一的抽象描述,在编程的语言中类是一个单独的程序,它应该有一个类
-
用穿越火线快速入门php面向对象
复制代码 代码如下: <?php /* *用穿越火线快速入门php面向对象! *php目前已经成为国内的主流web developer的首选开发语言,其强大的面向对象容易使初学者找不到思绪,一头雾水! *,借助此文希望对初学者有所帮助,假设Crossfire用php来开发. * 1类与对象 */ class Crossfire { public $Category='1,2,3'; //枪械种类,3个选择武器类别 public $Weapon='ak|awp|m4a1';//购买的武器,拥有的武
-
php面向对象中的魔术方法中文说明
1.__construct() 实例化对象是被自动调用.当__construct和以类名为函数名的函数 同时存在时调用__construct,另一个不背调用. 类名为函数名的函数为老版的构造函数. 2.__destruct() 当删除一个对象或一个对象操作结束是被调用. 3.__call() 对象调用某个方法.若方法不存在,这调用__call 这个方法 4.__get() 读取一个对象属性,如果对象属性是私有的会调用它 5.__set() 给一个对象属性赋值时如果属性是私有的会调用它 6.__t
-
php学习笔记之面向对象编程
复制代码 代码如下: <?phpclass db { private $mysqli; //数据库连接 private $options; //SQL选项 private $tableName; //表名 public function __construct($tabName) { $this->tableName = $tabName; $this->db (); } private function d
-
PHP面向对象之旅:深入理解static变量与方法
static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为"类属性"或"类方法". 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号"::"调用. static关键字可以用来修饰变量.方法. 不经过实例化,就可以直接访问类中static的属性和static的方法. static 的属性和方法,只能访问static的属性和方法,不能类访问非静态的属性和方法.因为静态属性和方法被创建时
-
基于PHP 面向对象之成员方法详解
用一个列子来读解成员方法:大家可以自己动手写一写,加深理解. 这样一个需求; 希望人可以说话, 做算术题.......,这样就需要使用到成员方法:1.添加speak 成员方法,输出 我是小明2.添加jisuan 成员方法,可以计算从 1+..+1000的结果3.修改jisuan 成员方法,该方法可以接收一个数n,计算 1+..+n 的结果4.添加add 成员方法,可以计算两个数的和 参考代码: 复制代码 代码如下: <?php class Person{ public $name;
-
深入分析php之面向对象
以前对面向对象仅限于死记硬背型,工作这么久了,回过头来看又是一翻体悟,供大家看看.1.finalfinal:php5新增一个final关键字.如果父类中的方法被声明为final,则子类无法覆盖该方法:如果一个类被声明final,则不能被继承. 复制代码 代码如下: class BaseClass{ public function test(){ ehco "test"; } final public function moreTest(){
-
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
-
PHP面向对象学习笔记之二 生成对象的设计模式
一. 单例模式(Singleton) 如果应用程序每次包含且仅包含一个对象,那么这个对象就是一单例. 用来替代全局变量. 复制代码 代码如下: <?php require_once("DB.php"); class DatabaseConnection{ <STRONG><SPAN style="COLOR: #ff0000">public static function get()</SPAN></STRONG>
-
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象:我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象一.封装性 封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作. php提供了三种访问控制修饰符 public 表示全局,本类内部,类外部,子类都可以访问 protected 表示受保护的,只有本类或子类可以访问 private 表示
-
浅析php面向对象public private protected 访问修饰符
PHP中有三种访问修饰符,分别是: public(公共的.默认) protected(受保护的) private(私有的)public(公共的.默认)在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限.protected(受保护的)被声明为protected的成员,只允许该类的子类进行访问.private(私有的 ) 被定义为private的成员,对于类内部所有成员都可见,没有访问限制.对类外部不允许访问. 图解demo 复制代码 代码如下: cl
-
php面向对象 字段的声明与使用
字段是用于描述类的么个方面的性质. 字段是用于描述类的某个方面的性质.它与一般的PHP 变量非常相似,只是有一些细微的差别,本节将介绍这些差别.这一节还将讨论如何声明和使用字段,下一节则介绍如何使用字段的作用域来进行访问限制. 声明字段 字段声明的有关规则与变量声明的规则非常类似:实际上,可以说没有区别.因为PHP 是松散类型的语言,字段甚至不需要声明:可以由类对象同时创建和赋值,但很少会这样做.相反,常见的做法是在类开始处声明字段.此时可以为字段赋初值.示例如下: 复制代码 代码如下: cla
-
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
一.抽像类(abstract) 在我们实际开发过程中,有些类并不需要被实例化,如前面学习到的一些父类,主要是让子类来继承,这样可以提高代码复用性 语法结构: 复制代码 代码如下: abstract class 类名{ 属性 $name; 方法(){} //方法也可以为abstract 修饰符 function 方法名(){} } 例: 复制代码 代码如下: abstract class animal{ public $name; public $age; //抽象方法不能有方法体,主要是为了让子
-
PHP面向对象法则
你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚.但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起 . ----- Arthur J.Riel (1)所有数据都应该隐藏在所在的类的内部. (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者. (3)尽量减少类的协议中的消息. (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝).相等性判断.正确输出内容.从ASCII描述解析等等]. (5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接
随机推荐
- js中apply与call简单用法详解
- AJAX中文乱码PHP中完美解决方法
- 图解prototype、proto和constructor的三角关系
- C++ 异常处理 catch(...)介绍
- JavaScript实现Flash炫光波动特效
- php使用str_replace实现输入框回车替换br的方法
- PHP实现通过URL提取根域名
- 零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
- JavaScript获取当前页面上的指定对象示例代码
- iOS开发之详谈属性设置readwrite、readonly、retain、copy、assign、nonatomic
- sql server中通过查询分析器实现数据库的备份与恢复方法分享
- jquery 判断是否支持Placeholder属性的方法
- js单例模式详解实例
- .httacces文件的配置技巧
- NET Runtime Optimization Service 1101 错误的解决方法
- 超小PHP小马小结(方便查找后门的朋友)
- ASP中FSO对象对IIS WEB服务器数据安全的威胁及对策
- InvocationHandler中invoke()方法的调用问题分析
- Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
- pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法