要显示的文本被解释为数组的一部分


PHP Text to display is interpreted as part of array

我有这样的代码:

return t("Use tokens like: eg. [youtube_video:id]");

因为我的字符串中使用了括号,PHP将this [youtube_video:id] 视为数组键并返回如下通知:注意:使用未定义的常量_miscellaneous_filter_tips -假设'_miscellaneous_filter_tips' w杂记ous_filter_info_alter()

如何解决?

请求后的所有代码:

function _miscellaneous_filter_tips() {
    return t('Use tokens like: eg. [yamandi:youtube_video:id]');
}
function miscellaneous_filter_info_alter(&$info) {
  $info['filter_tokens']['tips callback'] = _miscellaneous_filter_tips;
}

因为我没有前体代码,我实际上看不到函数t()做什么,但是如果它似乎认为你正在调用一个变量尝试使用

return t('Use tokens like: eg. [youtube_video:id]');

或者如果你仍然想使用变量

return t("Use tokens like: eg. " . '[youtube_video:id]');

把双引号改成单引号:

return t('Use tokens like: eg. [youtube_video:id]');

编辑

查看更新后的代码,这可能是一个完全不同的问题,我认为你可能想尝试这种方式存储函数钩子:

function _miscellaneous_filter_tips() {
    return t('Use tokens like: eg. [yamandi:youtube_video:id]');
}
function miscellaneous_filter_info_alter(&$info) {
  $info['filter_tokens']['tips callback'] = '_miscellaneous_filter_tips';
}

然后当你想调用那个函数时,你可以简单地使用:

$info['filter_tokens']['tips callback']();