Methods with the same name as their class will not be constructors in a future version of PHP

回覆文章
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

Methods with the same name as their class will not be constructors in a future version of PHP

文章 yehlu »

https://blog.csdn.net/sanbingyutuoniao1 ... s/78614077

最近刚把php版本从5.6切换到7.0上,但是再重新打开项目时,报如下错误:

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP;

Smarty has a deprecated constructor in /www/platform/library/Platform/View/Smarty/Smarty.class.php

原来是smarty模板类还是使用了php4的构造函数的写法,所以找到smarty类后,找到与类同名的函数,将函数名改

为__construct即可。

PHP OOP使用和类名相同的方法名作为构造方法,是 PHP4 的写法,PHP 5中同时支持__construct和类同名方法,但__construct方法具有优先性。

PHP 7开始使用和类名相同的方法名作为构造方法会报E_DEPRECATED级别的错误,提示在未来版本中会彻底抛弃类同名方法作为

构造函数。
但程序仍然会正常执行。

代碼: 選擇全部

<?php
        class a{
                function a(){
                        
                }
        }
?>
复制代码
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP 的解决方法是使用__construct作为

构造方法的方法名。即:

代碼: 選擇全部

<?php
        class a{
                function __construct(){
                }
        }
?>
---------------------
作者:从心所愿
来源:CSDN
原文:https://blog.csdn.net/sanbingyutuoniao1 ... s/78614077
版权声明:本文为博主原创文章,转载请附上博文链接!
回覆文章

回到「PHP」