求助解决PHP语法错误:unexpected '['及unexpected T_ARRAY问题
问题解决:PHP语法错误修复
第一个错误:Parse error: syntax error, unexpected '['
这个错误的核心原因是你的PHP版本低于5.4,不支持函数返回值直接通过[]访问数组元素的语法(即数组dereferencing特性)。
第二个错误:Parse error: syntax error, unexpected T_ARRAY
出现这个错误通常也是PHP版本过低(<5.4)导致的——旧版本不支持短数组语法[],或是你在修复第一个错误时误用了array关键字的位置。
最终兼容旧版本的完整代码
if (!function_exists('mssql_get_last_message')) { function mssql_get_last_message() { // 先存储函数返回值到变量,避免直接数组访问的语法问题 $errors = sqlsrv_errors(SQLSRV_ERR_ALL); // 增加空值检查,防止无错误时出现索引不存在的问题 if (!empty($errors) && isset($errors[0]['message'])) { preg_match('/^\[Microsoft.*SQL.*Server\](.*)$/i', $errors[0]['message'], $matches); // 确保匹配结果存在再返回,避免未定义索引警告 return isset($matches[1]) ? $matches[1] : ''; } // 无错误时返回空字符串 return ''; } }
额外说明
- 先将
sqlsrv_errors()的结果赋值给变量再访问数组,彻底解决旧版本PHP不支持的语法问题。 - 新增的空值检查和默认返回值,能避免无错误场景下出现的索引未定义警告,提升代码健壮性。
内容的提问来源于stack exchange,提问作者Marcos Paulo B.
相关产品推荐
相关产品推荐

