gpt4 book ai didi

php - 使用 "function (array $matches)"时出现意外的 T_FUNCTION 错误

转载 作者:可可西里 更新时间:2023-11-01 12:43:24 26 4
gpt4 key购买 nike

您好,我正在使用以下代码,但第二行出现“意外的 T_FUNCTION”语法错误。有什么建议吗?

preg_replace_callback("/\\[LINK\=(.*?)\\\](.*?)\\[\/LINK\\]/is",
function (array $matches) {
if (filter_var($matches[1], FILTER_VALIDATE_URL))
return '<a href="'.
htmlspecialchars($matches[1], ENT_QUOTES).
'" target="_blank">'.
htmlspecialchars($matches[2])."</a>";
else
return "INVALID MARKUP";
}, $text);

最佳答案

当您的 PHP 版本低于 5.3 时会发生这种情况。匿名函数支持直到 5.3 才可用,因此 PHP 无法识别像这样作为参数传递的函数签名。

您必须以传统方式创建一个函数,并改为传递其名称(例如,我使用 link_code()):

function link_code(array $matches) {
if (filter_var($matches[1], FILTER_VALIDATE_URL))
return '<a href="'.
htmlspecialchars($matches[1], ENT_QUOTES).
'" target="_blank">'.
htmlspecialchars($matches[2])."</a>";
else
return "INVALID MARKUP";
}

preg_replace_callback("/\\[LINK\=(.*?)\\\](.*?)\\[\/LINK\\]/is", 'link_code', $text);

另外,array $matches 不是问题,因为 PHP 5.2 支持数组的类型提示。

关于php - 使用 "function (array $matches)"时出现意外的 T_FUNCTION 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3657357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com