《PHP 5权威编程》第三章读后感
时间:2008-01-16
来源:互联网
1、书中的讲解深入浅出,没有一个多余的辞藻,完全以编程的风格与要求来表达作者的意图,通读之后对面向对象的理解更加明了。就像面向对象一样本书也以问题的角度来阐述观点,再加上作者对问题理解的深度对一个看似复杂的问题如:对象 Objects,作者的理解为“OOP与面向功能的编程最大的区别就是数据和代码是绑定到一个实体中的,这个实体就叫做对象”,一句话说明了中心也是作者自己的经验的总结,很是言简意赅。同时书中的讲解多与php4进行了对比方便熟悉php4的phper快速应用。
2、看了一些其它作品的源代码之后你可能总结出一些小技巧,当然可能是很费劲的也费时的。而在本书中作者加入了大量的“注意”和“提示”,例如:“注意:接口总是被认为是public的;因此,你不能在定义接口时,给接口的函数原型设置访问修饰符”等,这样以避免大家错误的理解和编码“。
3、由于很多phper都是自学成才,某些方面缺少对高级应用的理解和实践,虽然时下讲解PHP的书不断增多,但实感缺少这样一本完全讲解PHP5高级特色的书。正如书中说到的这本书主要是对PHP5中高级特性的详细讲解,适合于想进行PHP5开发的phper包括:新的面对对象的特性,异常处理、XML和Web服务的改进等还有大量内容请大家参考目录。
“该书是PHP创始人之一、PHP5的缔造者Andi Gutmans根据他在PHP5所加进去的新特性编写的一本PHP5技术大全”,读到这些你会知道一位有着丰富编程经验并且是PHP5的创造者写了这本书,更难能可贵的是他不厌其烦在书中提到了很多技巧及经验(这是我看了第三章后的感受),再加上前PHPChina开源社区负责人,美国Zend公司(PHP的创始公司)中国技术支持中心的简老师的辛勤劳作,相信不会让大家失望。
[ 本帖最后由 jfcat 于 2008-1-16 17:35 编辑 ]
作者: jfcat 发布时间: 2008-01-16
一本好书就是一位好的导师,大大减少你时间和金钱的投入,并且提高学习效率和学习兴趣。编程的学习除此之外,还是要大量进行实践与总结才会写出效率更高、质量更好的作品。

作者: jfcat 发布时间: 2008-01-16

作者: luzhou 发布时间: 2008-01-16

作者: 习明 发布时间: 2008-01-16

作者: jfcat 发布时间: 2008-01-16
第2章 PHP 5基础语言 13
第3章 PHP 5面向对象语言 55
第4章 PHP 5高级面向对象编程和设计模式 85
第5章 如何用PHP写一个Web应用 111
第6章 使用PHP 5访问数据库 149
第7章 错误处理 191
第8章 PHP 5中处理XML 219
第9章 主流扩展 261
第10章 使用PEAR 345
第11章 重要的PEAR包 383
第12章 创建PEAR的组件 403
第13章 迁移 433
第14章 性能 449
第15章 一个编写PHP扩展的介绍 483
第16章 PHP Shell 脚本编程 507
附录A PEAR和PECL包索引 527
附录B phpDocumentor格式参考 613
附录C Zend Studio快速使用说明 643
这里弄个目录希望大家对书中章节有更多了解
http://www.china-pub.com/computers/common/info.asp?id=37110
下面是CSDN的连载,希望对大家有帮助
http://book.csdn.net/bookfiles/599/
作者: jfcat 发布时间: 2008-01-17

PHP代码:
/*** php5版 db.php
*/
class db
{
public $conn_id;
public $sql_num_queries=0;
private $user;
private $host;
private $dbname;
private $persistency;
private $query_result;
private $sql;
public function __construct($server, $sqluser, $sqlpassword, $database, $port = false, $persistency = false, $new_link = false)
{
$this->user = $sqluser;
$this->host = $sqluser;
$this->dbname = $database;
$this->persistency = $persistency;
$this->conn_id = ($this->persistency) ? (mysql_pconnect($this->host, $this->user, $sqlpassword, $new_link)) : (mysql_connect($this->host, $this->user, $sqlpassword, $new_link));
if($this->conn_id && $this->dbname!='')
{
@mysql_query("SET NAMES 'utf8'",$this->conn_id);
@mysql_select_db($this->dbname);
}
}
public function __destruct()
{
if(is_resource($this->query_result))
{
@mysql_free_result($this->query_result);
}
}
}
PHP代码:
/*** PHP4 db.php
*/
class db
{
var $user;
var $host;
var $dbname;
var $persistency;
var $conn_id;
var $sql_num_queries = 0;
var $query_result;
var $sql;
function db_connect($server,$sqluser,$sqlpassword,$database,$port = false,$persistency = false,$new_link = false)
{
$this->user = $sqluser;
$this->host = $server;
$this->dbname = $database;
$this->persistency = $persistency;
$this->conn_id = ($this->persistency)?@mysql_pconnect($this->host,$this->user,$sqlpassword,$new_link):@mysql_connect($this->host,$this->user,$sqlpassword,$new_link);
if($this->conn_id && $this->dbname!='')
{
@mysql_query("SET NAMES 'utf8'",$this->conn_id);
@mysql_select_db($this->dbname);
}
}
作者: jfcat 发布时间: 2008-01-17

作者: 习明 发布时间: 2008-01-17
private. Private members are similar to protected members because they
can be accessed only from within an object’s method. However, they are
also inaccessible from a derived object’s methods. Because private properties
aren’t visible from inheriting classes, two related classes may
declare the same private properties. Each class will see its own private
copy, which are unrelated.
个人感觉上面红字这句话有几分歧义或不全面,应为“私有成员应不能从继承类的方法中访问”,而私有成员本不能从实例对象中访问
原文在表达上这个derived object's methods 最好认为是继承类的方法
PHP代码:
[font=NewCenturySchlbk-Roman][size=10pt]class A{
private $a;
function __construct()
{
$this->a = 1;
}
}[/size][/font]
[font=NewCenturySchlbk-Roman][size=10pt]class B extends A
{
function __construct()
{
echo $this->a;
}
}[/size][/font]
[font=NewCenturySchlbk-Roman][size=10pt]$b = new B();[/size][/font]
作者: jfcat 发布时间: 2008-01-18
手册上这样写到 ”析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行“,另外还有
“注: 析构函数在脚本关闭时调用,此时所有的头信息已经发出。
注: 试图在析构函数中抛出一个异常会导致致命错误。 ”
所以我认为使用析构函数还是特别注意,因为可能很多自己生成的对象都已被摧毁;
一个mysql link resource类型被建立后多不用自己关闭,一般当脚本执行完后自己会清理的;另外,在编码过程中只用清理使用中的不用了的查询结果资源,应为这些资源多会缓存在系统中,没用的时候就形成浪费了
作者: jfcat 发布时间: 2008-01-18
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28