+ -
当前位置:首页 → 问答吧 → p30有问题不明白

p30有问题不明白

时间:2007-08-25

来源:互联网

复制PHP内容到剪贴板
PHP代码:
class Person        {
        public $name = '';

        function name ($newname = NULL)        {
                if(! is_null($newname))        {
                        $this->name = $newname;
                }
                return $this->name;
        }
}

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


还是有点问题, 这样的话,不是每次调用这个函数$newname都是null?????   还是为了举例子,这个地方特意把他写成null?? 看晕了

作者: oodick   发布时间: 2007-08-25

还是有点问题, 这样的话,不是每次调用这个函数$newname都是null?????   还是为了举例子,这个地方特意把他写成null?? 看晕了

------------------------
不是每次调用时都为NULL,只是在没有指定该参数的时候才为NULL(也就是说NULL为默认值)。 function(参数=默认值){}

比如说
$p = new Person();
$p->name();   //这时name类方法的参数未指定,则默认的$newname为NULL
$p->name('haohappy'); //这时参数指定,就不再是NULL

[ 本帖最后由 Haohappy 于 2007-8-25 09:01 编辑 ]

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

$p->name(); 调用这个成员方法的时候 可以不传参数的吗???  这个是不是php比较特殊的地方???
复制PHP内容到剪贴板
PHP代码:
[color=#007700]function [/color][color=#0000bb]name [/color][color=#007700]([/color][color=#0000bb]$newname [/color][color=#007700]= [/color][color=#0000bb]NULL[/color][color=#007700])        {
                if(! [/color][color=#0000bb]is_null[/color][color=#007700]([/color][color=#0000bb]$newname[/color][color=#007700]))        {
                        [/color][color=#0000bb]$this[/color][color=#007700]->[/color][color=#0000bb]name [/color][color=#007700]= [/color][color=#0000bb]$newname[/color][color=#007700];
                }
                return [/color][color=#0000bb]$this[/color][color=#007700]->[/color][color=#0000bb]name[/color][color=#007700];
        }
[/color]

这个函数定义了一个参数的啊???? 有点不理解

[ 本帖最后由 oodick 于 2007-8-26 12:48 编辑 ]

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

可以不传参数,不是php比较特殊的地方。

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

热门下载

更多