+ -
当前位置:首页 → 问答吧 → 我是初学者 对于本书有两个地方不明白问问大侠们!

我是初学者 对于本书有两个地方不明白问问大侠们!

时间:2007-05-26

来源:互联网

###############
#                             #
#  第一个问题        #
#                             #
###############

P30 页
引用:
class Person        {
        public $name = '';

        function name ($newname = NULL)        {
                if(! is_null($newname))        {
                        $this->name = $newname;
                }
                return $this->name;
        }
}
这个类里面的 name方法 为什么接收的参数中 有这个$newname = NULL  这个不是赋值吗? 每次都赋值成空 那字段怎么被赋值

###############
#                             #
#  第二个问题        #
#                             #
###############

p31页
引用:
$res = "boo" //数据库连接自动关闭
为什么关闭数据库 给赋值了一个字符串?

[ 本帖最后由 meritna 于 2007-5-25 19:40 编辑 ]

作者: meritna   发布时间: 2007-05-25

解答:
1。function name ($newname = NULL)  
这里$newname = NULL不是指每次都赋值为NULL,而是给$newname这个参数设定默认值为NULL,如果指定了参数的值,就不再是NULL了。

比如
name('haohappy');
那么现在类方法内部变量$newname的值不再是NULL,变成了'haohappy'。

具体用法请查看第三章“函数”的默认参数这一节,在69页

2。因为原来$res是资源类型的变量,这种类型的变量会自动完成内存管理。
$res = "boo" //数据库连接自动关闭

类型变成字符串类型,则对资源的引用被销毁了,所以数据库连接关闭。

作者: Haohappy   发布时间: 2007-05-26

谢谢 好还赔

1 我明白咯
2 设置成null行?

作者: meritna   发布时间: 2007-05-26

强烈建议看英文电子版..又省钱..

作者: xwoniu   发布时间: 2007-05-26

引用:
原帖由 meritna 于 2007-5-26 12:16 发表
谢谢 好还赔

1 我明白咯
2 设置成null行?
也可以。

作者: Haohappy   发布时间: 2007-05-27

如果设置成了字符串不又得创建了一次内存空间吗? 再等它自动垃圾回收

还是直接设置成null好!

作者: ZiNYon!   发布时间: 2007-05-28

引用:
原帖由 lynovr 于 2007-5-28 09:47 发表
如果设置成了字符串不又得创建了一次内存空间吗? 再等它自动垃圾回收

还是直接设置成null好!
书中只是举例说明一下资源型变量的销毁.

实际应用当中,最好还是用PHP的函数来显式地关闭数据库连接.  比如mysql_close($link);
效果都一样,但代码比较容易理解.

作者: Haohappy   发布时间: 2007-05-28

对头 支持haohappy 我在当当也订了这本书了  :)

作者: ZiNYon!   发布时间: 2007-05-28

支持                 

作者: 服务最前线   发布时间: 2007-08-01

这本书也有中文电子版撒
看不懂英文看中文就可以了呀
不过中文电子版是老版了

作者: 莫一哲   发布时间: 2007-08-06

引用:
原帖由 莫一哲 于 2007-8-6 15:34 发表
这本书也有中文电子版撒
看不懂英文看中文就可以了呀
不过中文电子版是老版了
第一版是02年出的,太过时了,而且里面很多错,有原书的,也有翻译的错误(特别多,而且不少技术性的),建议不要看那一版。

作者: Haohappy   发布时间: 2007-08-09

我也看过老版本的,里面错误很多。

作者: wit   发布时间: 2007-08-26

热门下载

更多