PHP致命错误:Uncaught TypeError: Unsupported operand types: string + string 修复方法(非重复问题,与PHP版本相关)
修复PHP的TypeError: Unsupported operand types: string + string错误
这个错误的根源非常明确——你在PHP里误用了运算符:PHP中字符串拼接必须用.(点号),而+是专门用来做数值加法的。当你用+把两个字符串放在一起时,PHP会尝试把它们转换成数字,转换失败就会抛出你看到的这个类型错误。
具体修复步骤:
替换字符串拼接的
+为.
把所有像echo "<td>" + $leden[$i] + "</td>";的代码,改成用点号连接:echo "<td>" . $leden[$i] . "</td>";修复循环边界问题
你当前的循环条件是$i <= $countedmembers,但count($leden)返回的是3,数组的索引是从0到2(因为数组有3个元素)。当$i=3时,会访问不存在的数组元素,触发Undefined offset错误。所以要把条件改成$i < $countedmembers。修复未闭合的HTML标签
错误提示里的链接标签没闭合:echo "<a href='inlogpage.php'>Foutieve inlog, probeer het opnieuw./a>";,这里的/a>应该改成</a>。优化SESSION判断逻辑
直接判断$_SESSION['login']会导致用户未登录时触发Notice错误,所以先加isset($_SESSION['login'])做存在性校验。
修正后的完整代码:
<?php include("includes/header.php"); //Session $username = "Tennisser"; $password = "Tryhard"; if ($_POST['username'] == $username && $_POST['password'] == $password) { session_start(); $_SESSION['login'] = true; } //Foutieve inlog else { echo "<a href='inlogpage.php'>Foutieve inlog, probeer het opnieuw.</a>"; } //Code voor login true if (isset($_SESSION['login']) && $_SESSION['login'] == true) { $leden = array ('Tim', 'Jur', 'Alba'); $beschikbaarheid = array (3/5, 7/10, 12/3); $dagdelen = array ('Middag', 'Ochtend', 'Nacht'); $countedmembers = count($leden); echo "<table>"; // 补充缺失的table标签,否则tr/td无法正常渲染 for ($i = 0; $i < $countedmembers ; $i++ ) { echo "<tr>"; echo "<td>" . $leden[$i] . "</td>"; echo "<td>" . $beschikbaarheid[$i] . "</td>"; echo "<td>" . $dagdelen[$i] . "</td>"; echo "</tr>"; // 补充闭合的tr标签 } echo "</table>"; // 闭合table标签 } ?>
内容的提问来源于stack exchange,提问作者Krisico Official
相关产品推荐
相关产品推荐

