You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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库的解决办法?
    有两种可行方案:

    1. 调整错误报告级别:在项目入口文件(如index.php)开头添加代码,屏蔽动态属性的弃用警告:
      error_reporting(E_ALL ^ E_DEPRECATED);
      
      或者修改php.ini配置:
      error_reporting = E_ALL & ~E_DEPRECATED
      
      注意:此方法会屏蔽所有弃用警告,若需关注其他功能的弃用信息需谨慎使用。
    2. 启用动态属性允许指令:在php.ini中添加或修改配置:
      allow_dynamic_properties = On
      
      或者在项目入口文件开头添加:
      ini_set('allow_dynamic_properties', 1);
      
      该指令专门控制是否允许动态创建类属性,开启后可精准消除TBS相关的弃用警告,且不影响其他错误信息上报。

内容的提问来源于stack exchange,提问作者phsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 17:42:15