【问题标题】:TYPO3 PHP Update to 7.0 | the logs say "Switch statements may only contain one default clause"TYPO3 PHP 更新到 7.0 |日志说“切换语句可能只包含一个默认子句”
【发布时间】:2018-10-22 08:10:10
【问题描述】:

我想将 PHP 从 5.6 更新到 7.0,但我收到 500 HTML 错误,并且在日志中显示:

[Mon Oct 22 09:42:14 2018] [-:error] [pid 12784] [client 5.158.158.123] [host www.mydomain.de] PHP Fatal error:  Switch statements may only contain one default clause in /is/htdocs/wp12731216_QEO0DONMD6/www/typo3conf/ext/dam/lib/class.tx_dam_db.php on line 547

所以我查看了文件,发现它说的是重复的默认值:声明:

if ($appendType = $TCA['tx_dam']['columns'][$field]['config']['appendType']) {
    $appended = true;
    switch($appendType) {
        case 'space':
            $rowUpdate[$field] = trim($row[$field].' '.$value);
            break;
        case 'newline':
            $rowUpdate[$field] = $row[$field].($row[$field]?"\n":'').$value;
            break;
        case 'comma':
            $rowUpdate[$field] = $row[$field].($row[$field]?', ':'').$value;
            break;
        case 'charDef':
            default:
            list($type, $appendChar) = explode(':', $appendType);
            $rowUpdate[$field] = $appendChar.$value;
            break;
        default:
            $appended = false;
            break;
    }
}

所以我的问题是,有解决方案吗?我可以只编辑这个文件并删除最后一个默认语句吗?还是应该更新到不同的 PHP 版本?

【问题讨论】:

  • 我觉得你应该先升级到最新的TYPO3版本。鉴于此消息暗示了 dam 扩展,您可能使用的是史前的 TYPO3 4.x。
  • 应该更正确地查看您的代码,有 2 个 default 案例。删除case 'charDef':之后的那个
  • @JaswinderSingh 我已经找到了解决方案,但感谢您抽出宝贵时间 :)
  • @MathiasBrodala 这对我来说是不可能的,我尝试的解决方案是更新我没有首先想到的扩展

标签: php html error-handling typo3


【解决方案1】:

所以我在一段时间后自己找到了解决方案......

我必须更新包含错误的文件的扩展名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 2011-06-06
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多