+ -
当前位置:首页 → 问答吧 → 《零基础学PHP》勘误、建议汇总帖!(更新ing)

《零基础学PHP》勘误、建议汇总帖!(更新ing)

时间:2008-10-27

来源:互联网

大家好!

    前段时间的蓝宝书书评活动,得到了PHPCHINA广大会员的大力支持,收到了很多非常好的建议,也发现了书中不少错误,为了让新进的初学者能更好的通过本书学习PHP。特将各位会员的提出的错误和建议汇总,方便查阅和讨论。

    因为很多会员的发帖内容较多,所以只筛取主要内容。如果关键处有疏漏之处,还请多多指出!
    也欢迎大家发现更多的疏漏之处、提出更多的建议!

作者: sarahhi   发布时间: 2008-10-27

wmaster

《零基础学PHP》,第三章session的介绍中,page93,
在使用session的页面中,需要使用session_star()函数,它表示开始或返回的一个已经存在的session。里面的session_star(),应该是session_start()。

作者: sarahhi   发布时间: 2008-10-27

十七

第18章《php与ajax》和第20章《mvc开发模式》,如果能把它们整合归纳到一个”高级php应用“的章节那我觉得更好,因为这两种技术一来比较高深,初学者阅读的可能性不大,难度太高,说不定阅读过程中就被新手读者给”过滤“了;二来ajax、框架、模块,这些高级技术要么就与其他web技术比如JavaScript、html、css等众多技术紧密关联,框架和模块更是多种多样,一两个章节的知识只能算是画饼充饥,略显鸡肋。倒不如把它们整合为一章,写出原理(像mvc章节一样),然后只对相关的知识做简单介绍,再给出相关的网站链接,让初学者读起来不会一筹莫展。

比如在第3章介绍超级全局变量的时候提到”常用的超级全局变量“,其中给出了$_COOKIE等几个超级全局变量,但是缺少了$_SESSION,我个人就认为$_SESSION比$_COOKIE更常用,但为什么$_SESSION不在其列?这就容易让读者产生疑惑。

作者: sarahhi   发布时间: 2008-10-27

gvtbs

在3.1.2节上两张图片3.3和3.4姓名输入和得出的结果不同。应该是搞错图了!好像直接用了3.2的图有点太大意了,图3.5的也是如此。

书中的例子有一个很不好的习惯,就是有很多地方的字符串都用双引号括起,这样在理论上处理会比用单引号来的慢.这会影晌新手使其造成了一个很不好的习惯, 即然是一本基础面向新手的书在细节上更应该注意,在例子中同一个例子有用双引号有用单引号的显的很不规范.

本书的例子是很全,对新手来说也非常的简单.但是同样犯了一个错误,那就是在例子中很多地方不够人性化,比如3.1.3节用户如果没有输入用户名就给一个出错提示这很好,但是怎么让用户返回呢?应该用echo "<script>alert('出错了');history.go(-1)</script>"这样会更加人性化。

在介绍session中的第一段的最后一句存在一个概念的问题,原话是这样说的:"简单的说,session是指用户进入网站到浏览器关闭这段时间(或过程)。" ,这一句话让我感到有点模糊,应该说session的生存期是打开网站到关闭浏览器这一段时间吧!而且在PHP中session是可以通过设置来得到更长的生存期的,默认是20分中可以修改php.ini中的session.gc_maxlifetime=1440 等来得到目的 。

在3.2.1节的最后一段的最后一句话,有点不解,原话:"客户端使用PHP处理这些数据,并将数据显示到浏览器",这里有问题吧,PHP是服务器端的脚本语言,怎么可能在客户端使用?

2.1.1节 PHP的分格符<?php?>应该也要介绍一下<??>这种写法的,在介绍一下他们的区别什么的。

2.2节这里讲变量的时候作者举了一个$var这就是一个变量,我认为不太适当。对于没有任何编程基础的人来说也许他不会认为这是一个保留字什么的,但是对于有一点点基础的人就会产生混乱,本来就还没有介绍保留字所以在这里尽量不要用这样的变量名,虽然PHP中的保留字和变量是完全不一样,但为了不使人混乱,可以用$myvar这样的来会更好些。

2.2.2节介绍变量的数据类型的时候,我想作者是为了给初学者减轻难度所以没有介绍NULL和资源类型,不过个人认为那怕不介绍也要提一提。
PHP支持8种原始的数据类型。
其中包括4种标量类型:
整型:Integer
浮点型:Float
字符串:String
布尔:Boolean
同时包括2种复合类型:
数据:Array
对象:Object
但是还有2种特殊的类型:
NULL:表示一个变量没有值,NULL 类型唯一可能的值就是 NULL
资源:Resource

2.2.3节讲变量类型的转换,过于简单了,特别是在讲将变量转成布尔,数据,和对象类型的时候我认为应该好好的介绍其转换原理,如在将变量从别的类型转到布尔型的时候,只要变量不为空,而且不为0或NULL那么转换后的值就为1,否则相反等。

2.2.4节可变变量,这里举例说明了一下可变变量的简单应用,我在这里给大家补一个例子:
<?php
for($i=0;$i<10;$i++){
${"a_".$i}=$i;//这里的可变变量可以用{}括起,更加灵活了。
}
?>
结果:
$a_0=0;
$a_1=1;
$a_2=2;
$a_3=3;
$a_4=4;
$a_5=5;
$a_6=6;
$a_7=7;
$a_8=8;
$a_9=9;
上面的都是变量对应的值,当然我并没有把他们都输出来,例子只是进行了赋值了。应用中还有很多用法。

2.2.9节 函数isset是判断变量是否被定义,如果被定义返回true否则返回false,我作了一个试验发现如果没有定义反回的是空,输出什么也得不到。还有这里说的定义是什么意思,是申明一个变量但没有值勤呢还是说申明一个变量并给他赋值才算是定义呢?
例一
<?
$wj;
echo isset($wj);
?>
例二
<?
echo isset($wj);
?>
以上两例的结果是一样的都返回空白,这函数我也没有太深的理解在这里就当是提问吧。

2.3节在介绍常量的时候,其实可以直接说常量和变量的区别即可,这样方便记忆,读者只要掌握了变量就能很轻松的掌握常量,而不用同时读常量和变理的写法,属性什么的。如在介绍常量命名规则的时候可以用:“常量的命名规则与变量相同,以字母或下划线开头数据和字母下划组成,一般常量名使用大字字母,变量名使用小写字母,且常量名不带$号”,等方便记录。

8.3 cookie主要是用于识别用户身份,有点简单了。cookie的作用很多,这里应该说cookie是将一小段数据保护与客户端,否则容易让初学者有思维定势。

5.3.5这节讲删除COOkie的时候只是讲了一种方式就是刚cookie的值设成空,其实还有另一种方式就是将cookie的过期时间设成一个已过去的时间数就行了。否则也容易让初学者有思维定势。

作者: sarahhi   发布时间: 2008-10-27

作者: liexusong   发布时间: 2008-11-06

作者: 怪兽   发布时间: 2008-11-11

大家好!

    前段时间的蓝宝书书评活动,得到了PHPCHINA广大会员的大力支持,收到了很多非常好的建议,也发现了书中不少错误,为了让新进的初学者能更好的通过本书学习PHP。特将各位会员的提出的错误和建议汇总,方便查阅和讨论。

    因为很多会员的发帖内容较多,所以只筛取主要内容。如果关键处有疏漏之处,还请多多指出!
    也欢迎大家发现更多的疏漏之处、提出更多的建议!

作者: sarahhi   发布时间: 2008-10-27

wmaster

《零基础学PHP》,第三章session的介绍中,page93,
在使用session的页面中,需要使用session_star()函数,它表示开始或返回的一个已经存在的session。里面的session_star(),应该是session_start()。

作者: sarahhi   发布时间: 2008-10-27

十七

第18章《php与ajax》和第20章《mvc开发模式》,如果能把它们整合归纳到一个”高级php应用“的章节那我觉得更好,因为这两种技术一来比较高深,初学者阅读的可能性不大,难度太高,说不定阅读过程中就被新手读者给”过滤“了;二来ajax、框架、模块,这些高级技术要么就与其他web技术比如JavaScript、html、css等众多技术紧密关联,框架和模块更是多种多样,一两个章节的知识只能算是画饼充饥,略显鸡肋。倒不如把它们整合为一章,写出原理(像mvc章节一样),然后只对相关的知识做简单介绍,再给出相关的网站链接,让初学者读起来不会一筹莫展。

比如在第3章介绍超级全局变量的时候提到”常用的超级全局变量“,其中给出了$_COOKIE等几个超级全局变量,但是缺少了$_SESSION,我个人就认为$_SESSION比$_COOKIE更常用,但为什么$_SESSION不在其列?这就容易让读者产生疑惑。

作者: sarahhi   发布时间: 2008-10-27

gvtbs

在3.1.2节上两张图片3.3和3.4姓名输入和得出的结果不同。应该是搞错图了!好像直接用了3.2的图有点太大意了,图3.5的也是如此。

书中的例子有一个很不好的习惯,就是有很多地方的字符串都用双引号括起,这样在理论上处理会比用单引号来的慢.这会影晌新手使其造成了一个很不好的习惯, 即然是一本基础面向新手的书在细节上更应该注意,在例子中同一个例子有用双引号有用单引号的显的很不规范.

本书的例子是很全,对新手来说也非常的简单.但是同样犯了一个错误,那就是在例子中很多地方不够人性化,比如3.1.3节用户如果没有输入用户名就给一个出错提示这很好,但是怎么让用户返回呢?应该用echo "<script>alert('出错了');history.go(-1)</script>"这样会更加人性化。

在介绍session中的第一段的最后一句存在一个概念的问题,原话是这样说的:"简单的说,session是指用户进入网站到浏览器关闭这段时间(或过程)。" ,这一句话让我感到有点模糊,应该说session的生存期是打开网站到关闭浏览器这一段时间吧!而且在PHP中session是可以通过设置来得到更长的生存期的,默认是20分中可以修改php.ini中的session.gc_maxlifetime=1440 等来得到目的 。

在3.2.1节的最后一段的最后一句话,有点不解,原话:"客户端使用PHP处理这些数据,并将数据显示到浏览器",这里有问题吧,PHP是服务器端的脚本语言,怎么可能在客户端使用?

2.1.1节 PHP的分格符<?php?>应该也要介绍一下<??>这种写法的,在介绍一下他们的区别什么的。

2.2节这里讲变量的时候作者举了一个$var这就是一个变量,我认为不太适当。对于没有任何编程基础的人来说也许他不会认为这是一个保留字什么的,但是对于有一点点基础的人就会产生混乱,本来就还没有介绍保留字所以在这里尽量不要用这样的变量名,虽然PHP中的保留字和变量是完全不一样,但为了不使人混乱,可以用$myvar这样的来会更好些。

2.2.2节介绍变量的数据类型的时候,我想作者是为了给初学者减轻难度所以没有介绍NULL和资源类型,不过个人认为那怕不介绍也要提一提。
PHP支持8种原始的数据类型。
其中包括4种标量类型:
整型:Integer
浮点型:Float
字符串:String
布尔:Boolean
同时包括2种复合类型:
数据:Array
对象:Object
但是还有2种特殊的类型:
NULL:表示一个变量没有值,NULL 类型唯一可能的值就是 NULL
资源:Resource

2.2.3节讲变量类型的转换,过于简单了,特别是在讲将变量转成布尔,数据,和对象类型的时候我认为应该好好的介绍其转换原理,如在将变量从别的类型转到布尔型的时候,只要变量不为空,而且不为0或NULL那么转换后的值就为1,否则相反等。

2.2.4节可变变量,这里举例说明了一下可变变量的简单应用,我在这里给大家补一个例子:
<?php
for($i=0;$i<10;$i++){
${"a_".$i}=$i;//这里的可变变量可以用{}括起,更加灵活了。
}
?>
结果:
$a_0=0;
$a_1=1;
$a_2=2;
$a_3=3;
$a_4=4;
$a_5=5;
$a_6=6;
$a_7=7;
$a_8=8;
$a_9=9;
上面的都是变量对应的值,当然我并没有把他们都输出来,例子只是进行了赋值了。应用中还有很多用法。

2.2.9节 函数isset是判断变量是否被定义,如果被定义返回true否则返回false,我作了一个试验发现如果没有定义反回的是空,输出什么也得不到。还有这里说的定义是什么意思,是申明一个变量但没有值勤呢还是说申明一个变量并给他赋值才算是定义呢?
例一
<?
$wj;
echo isset($wj);
?>
例二
<?
echo isset($wj);
?>
以上两例的结果是一样的都返回空白,这函数我也没有太深的理解在这里就当是提问吧。

2.3节在介绍常量的时候,其实可以直接说常量和变量的区别即可,这样方便记忆,读者只要掌握了变量就能很轻松的掌握常量,而不用同时读常量和变理的写法,属性什么的。如在介绍常量命名规则的时候可以用:“常量的命名规则与变量相同,以字母或下划线开头数据和字母下划组成,一般常量名使用大字字母,变量名使用小写字母,且常量名不带$号”,等方便记录。

8.3 cookie主要是用于识别用户身份,有点简单了。cookie的作用很多,这里应该说cookie是将一小段数据保护与客户端,否则容易让初学者有思维定势。

5.3.5这节讲删除COOkie的时候只是讲了一种方式就是刚cookie的值设成空,其实还有另一种方式就是将cookie的过期时间设成一个已过去的时间数就行了。否则也容易让初学者有思维定势。

作者: sarahhi   发布时间: 2008-10-27

作者: liexusong   发布时间: 2008-11-06

作者: 怪兽   发布时间: 2008-11-11

热门下载

更多