PHP 8.2搭配TBS 3.14.0出现动态属性创建弃用警告求助
PHP 8.2 + TBS 3.14.0 动态属性弃用警告问题
当前使用PHP 8.2和TBS 3.14.0,出现如下弃用警告:
Deprecated: Creation of dynamic property clsTinyButStrong::$_UserFctLst is deprecated in /home/b/s/ejEfbT2v/ftp_bswkdk/b2b/tbs/tbs_class.php on line 738 Deprecated: Creation of dynamic property clsTbsLocator::$Ope is deprecated in /home/b/s/ejEfbT2v/ftp_bswkdk/b2b/tbs/tbs_class.php on line 1591 Deprecated: Creation of dynamic property clsTbsLocator::$PosNext is deprecated in /home/b/s/ejEfbT2v/ftp_bswkdk/b2b/tbs/tbs_class.php on line 1929 Deprecated: Creation of dynamic property clsTbsLocator::$Ope is deprecated in /home/b/s/ejEfbT2v/ftp_bswkdk/b2b/tbs/tbs_class.php on line 1591 Deprecated: Creation of dynamic property clsTbsLocator::$PosNext is deprecated in /home/b/s/ejEfbT2v/ftp_bswkdk/b2b/tbs/tbs_class.php on line 1929 Deprecated: Creation of dynamic property clsTbsLocator::$PrmIf is deprecated in /home/b/s/ejEfbT2v/ftp_bswkdk/b2b/tbs/tbs_class.php on line 4659此前在旧服务器使用PHP 8.1时无任何问题与警告。请问这仅因PHP 8.2导致吗?有无无需修改TBS库的解决办法?
解答
是否仅因PHP 8.2导致?
是。PHP 8.2开始默认禁用动态创建类属性,而PHP 8.1及更早版本允许该操作。TBS 3.14.0的代码中存在未声明类属性就直接赋值的写法,刚好触发了PHP 8.2的新规则,所以升级后才会出现这些警告。无需修改TBS库的解决办法?
有两种可行方案:- 调整错误报告级别:在项目入口文件(如
index.php)开头添加代码,屏蔽动态属性的弃用警告:
或者修改error_reporting(E_ALL ^ E_DEPRECATED);php.ini配置:
注意:此方法会屏蔽所有弃用警告,若需关注其他功能的弃用信息需谨慎使用。error_reporting = E_ALL & ~E_DEPRECATED - 启用动态属性允许指令:在
php.ini中添加或修改配置:
或者在项目入口文件开头添加:allow_dynamic_properties = On
该指令专门控制是否允许动态创建类属性,开启后可精准消除TBS相关的弃用警告,且不影响其他错误信息上报。ini_set('allow_dynamic_properties', 1);
- 调整错误报告级别:在项目入口文件(如
内容的提问来源于stack exchange,提问作者phsh
相关产品推荐
相关产品推荐

