07 2011 档案

第十节--抽象方法和抽象类
摘要:第十节--抽象方法和抽象类面向对象程序通过类的分层结构构建起来. 在单重继承语言如PHP中, 类的继承是树状的. 一个根类有一个或更多的子类,再从每个子类继承出一个或更多下一级子类. 当然,可能存在多个根类,用来实现不同的功能. 在一个良好设计的体系中,每个根类都应该有一个有用的接口, 可以被应用代码所使用. 如果我们的应用代码被设计成与根类一起工作,那么它也可以和任何一个从根类继承出来的子类合作.抽象方法是就像子类中一般的方法的占位符(占个地方但不起作用),它与一般方法不同—没有任何代码. 如果类中存在一个或更多抽象方法, 那么这个类就成了抽象类. 你不能实例化抽象类. 你必须继承它们,然后 阅读全文

posted @ 2011-07-28 11:26 兴勇 阅读(137) 评论(0) 推荐(0)

第九节--绑定
摘要:除了限制访问,访问方式也决定哪个方法将被子类调用或哪个属性将被子类访问. 函数调用与函数本身的关联,以及成员访问与变量内存地址间的关系,称为绑定. 在计算机语言中有两种主要的绑定方式—静态绑定和动态绑定. 静态绑定发生于数据结构和数据结构间,程序执行之前. 静态绑定发生于编译期, 因此不能利用任何运行期的信息. 它针对函数调用与函数的主体,或变量与内存中的区块. 因为PHP是一种动态语言,它不使用静态绑定. 但是可以模拟静态绑定.动态绑定则针对运行期产生的访问请求,只用到运行期的可用信息. 在面向对象的代码中,动态绑定意味着决定哪个方法被调用或哪个属性被访问,将基于这个类本身而不基于访问范围. 阅读全文

posted @ 2011-07-28 11:04 兴勇 阅读(143) 评论(0) 推荐(0)

类的静态成员
摘要:类的静态成员与一般的类成员不同: 静态成员与对象的实例无关,只与类本身有关. 他们用来实现类要封装的功能和数据,但不包括特定对象的功能和数据. 静态成员包括静态方法和静态属性.静态属性包含在类中要封装的数据,可以由所有类的实例共享. 实际上,除了属于一个固定的类并限制访问方式外,类的静态属性非常类似于函数的全局变量我们在下例中使用了一个静态属性Counter::$count. 它属于Counter类,而不属于任何Counter的实例.你不能用this来引用它,但可以用self或其它有效的命名表达. 在例子中,getCount方法返回self::$count,而不是Counter::$count 阅读全文

posted @ 2011-07-28 10:00 兴勇 阅读(195) 评论(0) 推荐(0)

访问属性和方法
摘要:第六节--访问属性和方法一个对象实例的属性是变量,就像PHP的其他变量一样. 但是你必须使用->运算符来引用它们. 不需要在属性前使用美元符$. 例如, 6.1中打印User对象的name属性那一行. 可以联用->,如果一个对象的属性包含了一个对象,你可以使用两个->运算符来得到内部对象的属性. 你甚至可以用双重引用的字符串来放置这些表达式. 看6.5中的例子,对象House中的属性room包含了一组Room对象.访问方法和访问属性类似. ->运算符用来指向实例的方法. 在例子6.1中调用getLastLogin就是. 方法执行起来和类外的函数几乎相同.如果一个类从另一 阅读全文

posted @ 2011-07-28 09:53 兴勇 阅读(166) 评论(0) 推荐(0)

克隆
摘要:PHP5中的对象模型通过引用来调用对象, 但有时你可能想建立一个对象的副本,并希望原来的对象的改变不影响到副本 . 为了这样的目的,PHP定义了一个特殊的方法,称为__clone. 像__construct和__destruct一样,前面有两个下划线.默认地,用__clone方法将建立一个与原对象拥有相同属性和方法的对象. 如果你想在克隆时改变默认的内容,你要在__clone中覆写(属性或方法).克隆的方法可以没有参数,但它同时包含this和that指针(that指向被复制的对象). 如果你选择克隆自己,你要小心复制任何你要你的对象包含的信息,从that到this. 如果你用__clone来复 阅读全文

posted @ 2011-07-28 09:35 兴勇 阅读(164) 评论(0) 推荐(0)

构造函数和析构函数
摘要:class Counter { private static $count = 0; function __construct() { self::$count++; } function __destruct() { self::$count--; } function getCount() { return self::$count; } } //建立第一个实例 $c = new Counter(); //输出1 print($c->getCount() . "\n"); //建立第二个实例 $c2 = new Counter(); //输出2 print($c- 阅读全文

posted @ 2011-07-27 22:08 兴勇 阅读(171) 评论(0) 推荐(0)

·定义一个类·
摘要:当你声明一个类,你需要列出对象应有的所有变量和所有函数—被称为属性和方法. 3.1.1中显示了一个类的构成. 注意在大括号({})内你只能声明变量或者函数. 3.1.2中显示了如何在一个类中定义三个属性和两个方法.3.1.1class Name extends Another Class { Access Variable Declaration Access Function Declaration } 3.1.2//定义一个跟踪用户的类 class User { //属性 public $name; private $password, $lastLogin; //方法 public fu 阅读全文

posted @ 2011-07-27 17:19 兴勇 阅读(431) 评论(0) 推荐(0)

PHP5 的对象模型
摘要:PHP5有一个单重继承的,限制访问的,可以重载的对象模型. 本章稍后会详细讨论的”继承”,包含类间的父-子关系. 另外,PHP支持对属性和方法的限制性访问. 你可以声明成员为private,不允许外部类访问. 最后,PHP允许一个子类从它的父类中重载成员.PHP5的对象模型把对象看成与任何其它数据类型不同,通过引用来传递. PHP不要求你通过引用(reference)显性传递和返回对象. 在本章的最后将会详细阐述基于引用的对象模型. 它是PHP5中最重要的新特性.有了更直接的对象模型,就拥有了附加的优势: 效率提高, 占用内存少,并且具有更大的灵活性.在PHP的前几个版本中,脚本默认复制对象. 阅读全文

posted @ 2011-07-27 17:13 兴勇 阅读(169) 评论(0) 推荐(0)

浏览器的发展史
摘要:编辑器加载中...最早的时候有一个浏览器叫NCSA Mosaic,把自己标称为NCSA_Mosaic/2.0 (Windows 3.1),它支持文字显示的同时还支持图片,于是Web开始好玩起来。然后出现了一个新的网页浏览器,“Mozilla”,其实就是“Mosaic终结者”的意思,这搞的Mosaic很不爽,(毕竟Mosaic出道早,江湖老),新浏览器最后正式公布的名称是Netscape,它把自己标称为Mozilla/1.0 (Win3.1),更好玩了。Netscape支持框架显示,后来框架在大家中间流行起来了,但Mosaic不支持框架啊,于是伟大的“用户代理人探测” (User-Agent)技 阅读全文

posted @ 2011-07-17 13:23 兴勇 阅读(311) 评论(0) 推荐(0)

curl模拟登陆
摘要:编辑器加载中...版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan稍微有点水平的一看就能明白我讲的是啥吧...有的内容略...这个东西不能留下能直接用的.培养大家的开发能力. 去掉了关键注释<?php/*** @name test.php* @date Thu Jan 24 00:24:20 CST 2008* @copyright 马永占(MyZ)* @author 马永占(MyZ)* @link http://blog. 阅读全文

posted @ 2011-07-17 11:25 兴勇 阅读(213) 评论(0) 推荐(0)

php采集书
摘要:编辑器加载中...版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan记得上次有过一个叫采集后的处理这个就是它的升级版本连采再处理,合成一本书txt的。<?php/*** @name 采集书.php* @date Sun Mar 01 22:48:02 CST 2009* @copyright 马永占(MyZ)* @author 马永占(MyZ) * @link http://blog.csdn.net/mayongzhan/* 阅读全文

posted @ 2011-07-17 11:24 兴勇 阅读(176) 评论(0) 推荐(0)

csdn模拟登陆使用curl模拟登陆
摘要:版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan讲讲原理吧.曾经但过有人用python和c#写出来过模拟登陆csdn的.所以决定用php写一个.php当中适合做这个工作的是socket或者是curl,其实curl也是一种Socket不用说了.太基础了.任何的header和内容都可以模拟出来的.适合高手使用.我使用的是curl,可以很方便的实现http post操作.当然也能顺便使用cookie还有可以制定header.想要模拟cs 阅读全文

posted @ 2011-07-17 11:22 兴勇 阅读(528) 评论(0) 推荐(0)

csdn模拟登陆
摘要:版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan首先声明本模拟不稳定,有时会出现登陆不进去.模拟的原理请参考blog.csdn.net/mayongzhan的文章,相关的知识也请参考blog.csdn.net/mayongzhan.原来是因为csdn的metaweblog不能发布类别,所以采用模拟登陆然后发布.当然也发现了不少csdn秘密,比如隐藏的用于发送垃圾邮件 的field,还有很多csdn只隐藏没删掉的功能.有兴趣大家可以 阅读全文

posted @ 2011-07-17 11:20 兴勇 阅读(362) 评论(0) 推荐(0)

用PHP模拟登陆
摘要:<?php /* * 得到网页内容 * 参数:$host [in] string * 主机名称(例如: www.imsorry.com.cn) * 参数:$method [in] string * 提交方法:POST, GET, HEAD ... 并加上相应的参数( 具体语法参见 RFC1945,RFC2616 ) * 参数:$str [in] string * 提交的内容 * 参数:$sessid [in] string * PHP的SESSIONID * * @返回 网页内容 string */ function GetWebContent($host, $method, $str, 阅读全文

posted @ 2011-07-17 11:17 兴勇 阅读(761) 评论(0) 推荐(0)

PHP __call()方法
摘要:从网上找的。引自:http://bbs.17php.com/show_title.php?id=1443PHP5的对象新增了一个专用方法__call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call方法将会被自动调用。例七:__call<?phpclassfoo{function__call($name,$arguments){print("Didyoucallme?I'm$name!");}}$x=newfoo();$x->doStuff();$x->fancy_stuff();?>这个特殊的方法 阅读全文

posted @ 2011-07-11 15:54 兴勇 阅读(1146) 评论(0) 推荐(0)

thinkphp
摘要:ThinkPHP中的BUG及技巧与策:1. 模板中不能使用的标签{$content} {$i}2. If标签如:试验后总是有想不到的错误, 这样,还不如直接用phpif(…){ …?>来得块些呢.约定:1.所有类库文件必须使用.class.php作为文件后缀,并且类名和文件名保持一致2.控制器的类名以Action为后缀3.模型的类名以Model为后缀,类名第一个字母须大写4.数据库表名全部采用小写,如:数据表名: 前缀_表名模型类名: 表名Model 注:这里的表名第一个字母要大写创建对象: D(‘表名’) 注:这里的表名第一个字母要大写定义控制器类class IndexAction e 阅读全文

posted @ 2011-07-04 20:43 兴勇 阅读(2130) 评论(0) 推荐(0)

导航