Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅适用于PHP5.3.6的代码_Php_Version - Fatal编程技术网

仅适用于PHP5.3.6的代码

仅适用于PHP5.3.6的代码,php,version,Php,Version,可能重复: 我有以下代码: $bbcode = 'Users [user=1], [user=2] and [user=3] are friendly.'; echo preg_replace_callback( '#\[user=(\d+)\]#', function($matches) { $userName = getUserNameByUserId($matches[1]);

可能重复:

我有以下代码:

$bbcode = 'Users [user=1], [user=2] and [user=3] are friendly.';
echo preg_replace_callback(
            '#\[user=(\d+)\]#',
            function($matches) {
                $userName = getUserNameByUserId($matches[1]);
                return "<a href=user.php?id=$matches[1]>$userName</a>";
            },
            $bbcode
        );
$bbcode='用户[user=1]、[user=2]和[user=3]是友好的';
回显preg_replace_回调(
“\[用户=(\d+)\]”,
函数($matches){
$userName=getUserNameByUserId($matches[1]);
返回“”;
},
$bbcode
);
而且它只适用于最后一个PHP版本。我想让它适用于PHP 5.2.17。

是的,您可以:

function callback_function($matches) {
  $userName = getUserNameByUserId($matches[1]);
  return "<a href=user.php?id=$matches[1]>$userName</a>";
}

$bbcode = 'Users [user=1], [user=2] and [user=3] are friendly.';
echo preg_replace_callback(
            '#\[user=(\d+)\]#',
            'callback_function',
            $bbcode
);
函数回调函数($matches){ $userName=getUserNameByUserId($matches[1]); 返回“”; } $bbcode='用户[user=1]、[user=2]和[user=3]是友好的。'; 回显preg_replace_回调( “\[用户=(\d+)\]”, “回调函数”, $bbcode ); 对于PHP5.2.x,函数的定义需要稍有不同,所以在调用pre_replace_回调之前先定义它。然后以字符串的形式提供它的名称

您可能还可以在希望运行代码的主机上升级PHP版本。PHP5.3比PHP5.2快得多,PHP5.2甚至不在使用状态。

是的,您可以:

function callback_function($matches) {
  $userName = getUserNameByUserId($matches[1]);
  return "<a href=user.php?id=$matches[1]>$userName</a>";
}

$bbcode = 'Users [user=1], [user=2] and [user=3] are friendly.';
echo preg_replace_callback(
            '#\[user=(\d+)\]#',
            'callback_function',
            $bbcode
);
函数回调函数($matches){ $userName=getUserNameByUserId($matches[1]); 返回“”; } $bbcode='用户[user=1]、[user=2]和[user=3]是友好的。'; 回显preg_replace_回调( “\[用户=(\d+)\]”, “回调函数”, $bbcode ); 对于PHP5.2.x,函数的定义需要稍有不同,所以在调用pre_replace_回调之前先定义它。然后以字符串的形式提供它的名称


您可能还可以在希望运行代码的主机上升级PHP版本。PHP5.3比PHP5.2快得多,PHP5.2甚至不在使用中。

匿名函数在5.3版中引入,因此代码只能在5.3版和更高版本中使用。

匿名函数在5.3版中引入,因此代码只能在5.3版和更高版本中使用。

如果您需要更简单的构造:

echo "Users ";
echo "<a href=\"user.php?id=1\">" . getUserNameByUserId(1) . "</a>";
echo ", ";
echo "<a href=\"user.php?id=2\">" . getUserNameByUserId(2) . "</a>";
echo " and ";
echo "<a href=\"user.php?id=3\">" . getUserNameByUserId(3) . "</a>";
echo " are friendly.";
echo“用户”;
回声“;
回声“,”;
回声“;
呼应“和”;
回声“;
echo“我们很友好。”;

如果您想要更简单的结构:

echo "Users ";
echo "<a href=\"user.php?id=1\">" . getUserNameByUserId(1) . "</a>";
echo ", ";
echo "<a href=\"user.php?id=2\">" . getUserNameByUserId(2) . "</a>";
echo " and ";
echo "<a href=\"user.php?id=3\">" . getUserNameByUserId(3) . "</a>";
echo " are friendly.";
echo“用户”;
回声“;
回声“,”;
回声“;
呼应“和”;
回声“;
echo“我们很友好。”;

您可以使用preg\u replace的“e”选项作为替代选项

echo preg_replace('#\[user=(\d+)\]#e','"<a href=\"user.php?id=$1".getUserNameByUserId($1)."</a>"',$bbcode);

echo preg\u replace('\[user=(\d+)\]\e',””您可以使用preg\u replace的'e'选项作为替代选项

echo preg_replace('#\[user=(\d+)\]#e','"<a href=\"user.php?id=$1".getUserNameByUserId($1)."</a>"',$bbcode);

echo preg\u replace(“\\[user=(\d+)\]”e“不必在PHP 5.2上复制它,您当然还可以定义一个普通函数。在本例中,这似乎更合适。不必在PHP 5.2上复制它,您当然还可以定义一个普通函数。在本例中,这似乎更合适。好吧,这只是一个示例。我将其用于用户之间的私人消息。如果如果是1000个下午,我不能为每个人都写代码。好吧,那只是一个例子。我用这个来处理用户之间的私人消息。如果有1000个下午,我不能为每个人写代码。