PHP中类名与方法名一样是何意,与function __construct()如何区分

2024-11-20 09:10:14
推荐回答(3个)
回答(1):

__construct()是析构函数,
而 class save_reg{function save_reg(没参数)
这种写法是php4的写法,过时了。
另外两种写法的结果是一样的,括号里面都可以传值。
学php必备php手册,像这个__construct()查手册就可以了,现在都抛弃了class save_reg{function save_reg(没参数) 这种写法,因为如果class名要是改变,里面的function名也必须跟着变,所以才会出现__construct().
参考资料:http://cn.php.net/__construct

回答(2):

PHP 5.3.0-5.3.2 可以用类名来做构造方法名。
PHP 5.3.3之后就不支持类名做构造方法了。

回答(3):

在PHP5以前的版本中,构造函数的名称必须与类名相同,这种方法在PHP5中仍然可以使用,但现在已经很少有人用了。
PHP5以及之后的版本,构造函数用__construct()方法来声明,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不需要改相应的构造函数名称了。
为了向下兼容,如果一个类中没有名为__construct( )的方法,PHP将搜索一个与类名相同名的构造方法。
如果__construct( )的方法、与类名相同名的构造方法同时存在的话,优先使用__construct( )的方法。