- 浏览: 1617302 次
- 性别:
- 来自: 长春
文章分类
- 全部博客 (309)
- ext (19)
- web (13)
- PHP (19)
- 互联网新闻 (3)
- oracle (3)
- Mootools (1)
- FLEX (3)
- 人在职场 (2)
- hibernate (24)
- spring2 (1)
- J2SE (24)
- WEB_UI (14)
- 其它 (11)
- Log4J (1)
- iText (10)
- SQL (11)
- 设计模式 (3)
- lucene (6)
- 开源项目 (2)
- javascript (20)
- 软件&破解补丁 (48)
- Quartz (2)
- 解决方案 (1)
- 工作存档 (2)
- JAVA对文件操作 (2)
- C&C#&VC (1)
- struts2 (3)
- 版本控制 (2)
- 软考基础 (23)
- JBPM (2)
- velocity (4)
- javamail (3)
- HttpClient (9)
- 虚拟化技术 (2)
- 报表 (3)
- ibatis (5)
- Spring (4)
- 信用卡 (0)
- 芒果钱包 (0)
- 养卡 (0)
最新评论
-
a601962168:
...
通过JAVA与串口(RS232)通信实例 -
olive009:
...
Adobe Acrobat 9 Pro & Pro Extended 中文版/英文版 下载及破解补丁 -
overshit:
api更新了,一加filter就Callback filter ...
深入浅出CGlib-打造无入侵的类代理 -
u010778233:
写得很不错,已经用起来了,谢谢
将jdbc结果集转换成对象列表 -
924060929:
我想找就是要这个功能!!!!!!!!
velocity基础教程--2自定义ResourceLoader实现字符模板
<? //面向对象基础,定义一个类使用一个对象 //定义一个类 这里class Class 是没有区别的 Class Person{ //定义属性 //Public(公开): 可以自由的在类的内部外部读取、修改。 //Private(私有): 只能在这个当前类的内部读取、修改。 //Protected(受保护):能够在这个类和类的子类中读取和修改。 public $name = "noName"; public $age = 20; public function __toString() { //$this 指当前对象。 //在方法内部通过 $this-> 符号调用同一对象的属性。 return "我的名称:".$this->name." 我的年龄:".$this->age; } } $p = new Person(); var_dump($p); echo "<br>"; print_r($p); echo "<br>"; echo $p;//会自动调用类中的__toString()方法,所以如果这样做就必须在类中声明一个__toString() echo "<br>"; echo "我的名字是:".$p->name; echo "<br>"; echo "我的年龄是:".$p->age; //这里我们改变对象的属性,由于属性是public所以允许改变 $p->name = "Tom"; $p->age = 25; echo "<br>"; echo "我的名字是:".$p->name; echo "<br>"; echo "我的年龄是:".$p->age; ?>
<? //关于对象中的私有方法 class Person{ private $name = "noName"; } $p = new Person(); echo $p->name;//由于是私有属性所以不能在外部直接访问。Fatal error: Cannot access private property Person::$name in ?>
<? /** 属性赋值 PHP5中,在属性定义可以不设置初值,或者赋予以下红色类型的初值。 PHP中简单类型有8种,分别是: 数值类型 boolean 布尔类型 integer整型 float 浮点型,也称为 double 双精度浮点型 string 字符串 复合类型 array 数组 object对象 特殊类型 resource资源 NULL */ Class A{ } Class Person{ private $name;//属性未赋值 private $name1 = NULL;//属性赋空值,与未赋值一样 private $married = true;//属性赋布尔类型的值 private $grade = 0;//属性赋整型数值类型的值 private $eyesight = 0.1;//属性赋值浮点类型 private $nationality = "China";//属性赋值字符串类型 private $arr = array("foo"=>"bar",12=>true);//属性赋值数组类型 //private $a = new A();//php5中不允许给属性赋值为对象类型 //private $res = opendir("abc");//php5中不允许使用资源类型 //private $g = $this->grade;//不允许使用已经定义的属性为当前属性赋值 } $p = new Person(); ?>
<? //变量与引用变量 $arr = array("foo"=>"olf",12=>true); $a = $arr;//对$a赋值 $arr["foo"] = "new";//改变$arr中的值 print_r($arr); echo "<br>"; print_r($a); //我们可以看到改变一个数组的内容并没有影响另一个数组的内容。 //这时由于普通变量间的传值方法,就是值的赋值。比如数组。 echo "<br>"; echo "<br>"; //下面是关于对象间的引用 class Person{ public $name = "Tom"; } $p1 = new Person(); $p2 = $p1;//这里是传递引用 $p2->name = "Jack";//改变p2中属性name的值 echo '$p1的属性name = '.$p1->name; echo "<br>"; echo '$p2的属性name = '.$p2->name; //输出结果都是Jack,说明$p1,$p2 是指向同一对象 //而指向对象的变量,是一个引用变量。在这个变量里面存储的是所指向对象的内存地址。 //引用变量传值时,传递的是这个对象的指向。而非复制这个对象。 ?>
<? //属性的扩充 /** 在类中使用$this-> 调用一个未定义的属性时,PHP5会自动创建一个属性供使用。 这个被创建的属性,默认的方法权限是public。 */ class A{ public $name="Tom"; //类的构造函数,在对象创建的时候会自动调用 function __construct(){ $this->age="20";//调用一个不存在的属性 } } $p = new A(); echo $p->name; echo "<br>"; echo $p->age; //这里我们看到age已经被创建了,而且是public的。 ?>
<? //php5中的方法 class Person{ private $name = "NoName";//定义一个私有属性,这样外部不能能直接访问 public function getName(){ return $this->name; } } $p = new Person(); echo '名字是:'.$p->getName(); /** 上面的例子将属性设置为private ,同时声明了public的getName()方法,用来获取属性$name的值, 调用getName()方法就会通过 return $this->name 返回 $name 的值。 注意:这里,方法内部调用本地属性时,使用 $this->name来获取属性。在这个例子中, 设置了公开的getName()方法,即用户只能获取$name, 而无法改变他的值。这就是封装的好处。 */ ?>
<? class Person{ private $a; function setA($_a){ $this->a=$_a;//对属性$a进行赋值 } function getA(){ return $this->a;//返回属性a的值 } } $p = new Person();//创建对象 $p->setA(100);//属性赋值 echo $p->getA(); //如果声明这个方法有参数,而调用这个方法时没有传递参数,或者参数数量不足, //系统会报出错误。 如 $p->setA(); 如果对函数设置了默认值 也可以如此调用可以看一下下一个例子 //如果参数数量超过方法定义参数的数量,PHP就忽略多于的参数。不会报错。如 $p->setA(100,10,12); ?>
<? class Person{ private $a; function setA($_a = "Tom"){ $this->a = $_a;//对属性$a赋值,如果没有传递参数将用Tom代替 } function getA(){ return $this->a;//返回属性$a } } $p = new Person(); $p->setA();//没有显示的赋值 echo $p->getA(); ?>
<? //将对象作为参数传递进方法中 class A{ //声明一个A类 public $name = "Tom"; } class Person{ private $a; function setA($_a){ $this->a = $_a; } function getA(){ return $this->a; } } $a1 = new A(); $p = new Person(); $p->setA($a1,null);//将对象作为参数传递进去,虽然不允许直接为属性赋对象类型,但可以通过参数传递的方式进行赋值 echo $p->getA()->name;//$p-getA()取得对象,->name是对象中的属性 //在PHP5中,指向对象的变量是引用变量。在这个变量里面存储的是所指向对象的内存地址。 //引用变量传值时,传递的是这个对象的指向。而非复制这个对象。 ?>
<? //对象比较 class Person{ public $name = "noName"; } $p = new Person(); $p1 = new Person(); /** * 当使用比较操作符(==)时,对象以一种很简单的规则比较:当两个对象有相同的属性和值, * 属于同一个类且被定义在相同的命名空间中, * 则两个对象相等。等于符号比较对象时,比较对象是否有相同的属性和值。 * 注意:== 比较两个不同的对象的时候,可能相等也可能不等。 */ if($p == $p1){ echo '$p和$p1内容一致。'; }else{ echo '$p和$p1内容不一致。'; } echo "<br>"; $p->name = "Tom"; if($p == $p1){ echo '$p和$p1内容一致。'; }else{ echo '$p和$p1内容不一致。'; } echo "<br>"; //使用 == 符号比较两个对象 ,比较的仅仅是两个对象的内容是否一致。 ?>
<? /** * 对象比较 * 当使用全等符(===)时,当且仅当两个对象指向相同类(在某一特定的命名空间中)的同一个对象时才相等。 * 是否在是同一个对象,两边指向的对象是否有同样的内存地址。 * 结果=== 比较的是两个变量是否一个对象。 */ class Person{ public $name = "noName"; } $p = new Person(); $p1 = new Person(); if($p === $p1){ echo '$p和$p1是一个对象'; }else{ echo '$p和$p1不是一个对象'; } echo '<br>'; $p->name = "Tom"; if($p === $p1){ echo '$p和$p1是一个对象'; }else{ echo '$p和$p1不是一个对象'; } echo '<br>'; ?>
<? class Person{ } $p = new Person(); $p1 = new Person(); $p2 = $p1;//变量$p2指向$p1指向的对象 if($p2 === $p1){ echo '$p2和$p1指向一个对象'; }else{ echo '$p2和$p1不指向一个对象'; } echo "<br>"; $p = $p1;//变量$p指向$p1指向的对象 if($p === $p1){ echo '$p和$p1指向一个对象'; }else{ echo '$p和$p1不指向一个对象'; } echo "<br>"; ?>
<? //构造函数 /** * 构造方法又称为构造函数,是对象被创建时自动调用的方法,用来完成类初始化的工作。 * 构造函数和其它函数一样,可以传递参数,可以设定参数默认值。 * 构造函数可以调用属性,可以调用方法。 * 构造函数可以被其它方法显式调用。 */ //在PHP4 中使用与类名同名的方法为构造函数。在PHP5中依然支持了这种方式, //但不建议再使用这种方式。 class Person{ private $name; public function Person($name){ $this->name = $name; echo "在类被初始化的时候,会执行这里的代码<br>"; echo "\$name is $this->name <br>"; } } new Person("Tom"); new Person("Jack"); echo "<br><br><br>"; //在PHP5中规定构造函数使用_ _construct() 函数表示构造函数,注意是两个 _ 。 //这也是推荐使用的方式 class Person2{ private $name; public function __construct($name){ $this->name = $name; echo "在类被初始化的时候,会执行这里的代码<br>"; echo "\$name is $this->name <br>"; } } new Person2("Tom2"); new Person2("Jack2"); ?>
<? /** * 析构函数与PHP的垃圾回收机制 * 析构函数:当某个对象成为垃圾或者当对象被显式销毁时执行。 * * GC(Garbage Collector) * 在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾。PHP会将其在内存中销毁。 * 这是PHP的GC(Garbage Collector)垃圾处理机制,防止内存溢出。 * 当一个PHP线程结束时,当前占用的所有内存空间都会被销毁,当前程序中的所有对象同样被销毁。 * * __destruct() 析构函数,是在垃圾对象被回收时执行。 * 析构函数也可以被显式调用,但不要这样去做。 * 析构函数是由系统自动调用的,不要在程序中调用一个对象的析构函数。 * 析构函数不能带有参数。 */ //程序结束前,所有对象被销毁。 //析构函数被调用了。 class Person{ public function __destruct(){ echo "<br>析构函数在这里执行"; echo "<br>这里一般用来放置关闭数据库连接,关闭文件等的首尾工作"; } } $p = new Person(); for($i=0;$i<5;$i++){ echo "<br>$i"; } //这里php程序结束 对象销毁。 ?>
<? //当对象没有指向时,对象被销毁。 class Person{ public function __destruct(){ echo "<br>析构函数在这里执行<br>"; } } $p = new Person(); $p = null;//对象没有引用,被销毁,析构函数执行 //$p = "abc";//同样效果 //我们将$p设置为空或者第11行赋予$p一个字符串,这样$p之前指向的对象 //就成为了垃圾对象。PHP将这个对象垃圾销毁。 echo "我们看到,析构函数被执行了"; for($i = 0;$i<5;$i++){ echo "<br>$i"; } ?>
<? //unset变量 //unset一个引用变量时。 //unset 销毁的是指向对象的变量,而不是这个对象。 class Person{ public function __destruct(){ echo "<br>析构函数在这里执行<br>"; } } $p = new Person(); $p1 = $p;//设定新引用变量$p1与$p指向同一对象 unset($p); echo "是否看到\$p被销毁,对象也被销毁呢?"; for($i = 0 ; $i<5 ;$i++){ echo "<br>$i"; } unset($p1);//这里彻底没有指向对象的变量了。 echo "我们看到,析构函数被执行,对象也被销毁呢?"; ?>
请看实例部分
- webroot.zip (7.5 KB)
- 下载次数: 8
发表评论
-
php文件上传
2009-12-29 15:32 1430upload.html <html> < ... -
Discuz7插件之宣传中心【安装 下载】
2009-03-19 14:17 2595实际上discuz 7中已经包含了宣传中心的功能,该插件只是将 ... -
面向对象设计 7 —— PHP5面向对象进阶(关键字 parent)
2009-03-10 14:24 1336<? //parent::关键字 /** * ... -
面向对象设计 6 —— PHP5面向对象进阶(关键字 this)
2009-03-03 13:58 1272<? //this 关键字 /** * PHP ... -
面向对象设计 5 —— PHP5面向对象进阶(重写(override))
2009-03-02 15:39 2909<? //重写(override) /** * ... -
面向对象设计 4 —— PHP5面向对象进阶(属性的访问控制)
2009-02-27 15:39 2113<? //访问控制 //在PHP5中,可以在类的 ... -
面向对象设计 3 —— PHP5面向对象进阶(类的继承)
2009-02-27 14:19 2060<? /** * 继承是面向 ... -
面向对象设计 2 —— PHP5面向对象基础(实例部分)
2009-02-27 11:16 2396如果描述不清 请参见 ... -
php学习笔记--3(连接mysql并查询结果)
2009-02-25 11:19 2886DROP TABLE IF EXISTS `person` ... -
php笔记-2文件上传
2009-02-24 21:12 2102<html> <head> ... -
php笔记-1
2009-02-24 20:00 1232<?php $a="欢迎," ... -
PHP5面向对象开发教程第五章-PHP5异常处理
2009-02-20 13:39 16945.1 PHP中的错误信息...... ... -
PHP5面向对象开发教程第四章-PHP5接口与多态
2009-02-20 13:37 1718目录 4.1 接口的定义与规范.............. ... -
PHP5面向对象开发教程第三章-PHP5面向对象高级类特性
2009-02-20 13:34 16613.1 static变量、方法................ ... -
PHP5面向对象开发教程第二章-PHP5面向对象进阶
2009-02-20 13:31 15202.1 类的继承....................... ... -
PHP5面向对象开发教程第一章-PHP5面向对象基础
2009-02-20 13:28 1620目录............................. ... -
最新PHP5中文手册下载
2009-02-20 10:56 10174php5中文手册说明: php5.2发布,手册内容似乎也更新 ... -
Apache安装[图文详解]
2009-02-19 11:08 3771软件及版本: apache_2.2.4-win32-x86- ...
相关推荐
NULL 博文链接:https://llying.iteye.com/blog/339812
NULL 博文链接:https://llying.iteye.com/blog/341552
NULL 博文链接:https://llying.iteye.com/blog/342196
NULL 博文链接:https://llying.iteye.com/blog/339988
NULL 博文链接:https://llying.iteye.com/blog/340045
关于php面向对象的要点精炼凝结,适合记忆理解
thinkphp, ThinkPHP3.2 ——基于PHP5的简单快速的面向对象的PHP框架
ThinkPHP3.2 ——基于PHP5的简单快速的面向对象的PHP框架
PHP专题——重点函数_静态化_缓存_面向对象_异常处理.doc
PHP专题从原理到实例简述PHP的重点函数,静态化技术,缓存技术,面向对象编程,以及详细的异常处理。 主题讲解思路清晰,流程化分析,富含表格与图片说明.
书在内容上每个段落先提出问题,给出实现,...本节内容东坡小编为大家整理带来的是一份pdf高清扫描版,且内容完整的中文版深入PHP面向对象模式与实践(第三版),需要查阅的朋友只需点击本文相应的下载地址进行下载即可!
public(公共的、默认) 在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限。 /* 以下两个方法声明访问权限效果相同 */ function say(){}; publilc function say(){}; 当类的成员被声明为public的...
php5现在的性能可以说已经超过上一个版本php4了,它强化了面向对象编程的概念,同时有了zend framework & smarty这个强大的组合,使用php也可以构筑mvc模式的应用系统了。本书突破以往的写作手法,直接从33个可以...
其中一半的内容非常详细地复习了面向对象编程——从基础知识到高级主题再到一些实用范例。另外3章介绍使用PHP的不同方式:与网络服务程序通信、与主机服务程序通信、从命令行使用PHP。本书最后3章分别介绍与 PHP相关...
其中一半的内容非常详细地复习了面向对象编程——从基础知识到高级主题再到一些实用范例。另外3章介绍使用PHP的不同方式:与网络服务程序通信、与主机服务程序通信、从命令行使用PHP。本书最后3章分别介绍与PHP相关...
PHP 5首席设计师Andi Gutmans,PEAR创始人Stig Saether Bakken,PHP核心贡献者Derick Rethans三大高手合力而作:本书几乎囊括了PHP 5所有的新特性,包括PHP 5所有的新功能,PHP 5的面向对象编程方法和设计模式,以及...
《PHP实战》首先介绍了面向对象设计的原则、模式和技巧,然后讲述了如何运用PHP的语法和特性来解决Web编程中遇到的难题。涵盖了单元测试、重构、用户交互、MVC模式、输入验证、表单处理、数据库连接和查询。以及抽象...
其中一半的内容非常详细地复习了面向对象编程——从基础知识到高级主题再到一些实用范例。另外3章介绍使用PHP的不同方式:与网络服务程序通信、与主机服务程序通信、从命令行使用PHP。本书最后3章分别介绍与PHP相关...
主要内容包括:动态网站设计概述、动态网站编程环境、网站主页设计与PHP基础、网站计数器设计与PHP文件访问、会员注册和管理设计与数据获取、网上社区设计与PHP数据库访问、网上购书与PHP面向对象技术、网站优化与...