0

我有以下简单的替换工作

<?php
$mydata= '15-2003';
$pattern = '/[-]/';
$replacement = ' ';
echo preg_replace($pattern, $replacement, $mydata);
?>

输出 15 2003

但是,当我将它放在我的 foreach 循环中时,它似乎不起作用?

我有这个

<?php foreach ($tests as $test): ?>
<tr>
<?php
$mydata= htmlout($test['f']);
$pattern = '/[-]/';
$replacement = '';
echo preg_replace($pattern, $replacement, $mydata);
?>
<?php endforeach; ?>

哪个输出 15-2003 我在哪里出错了?

htmlout 是下面的自定义函数。

<?php
function html($text)
{
return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
}
function htmlout($text)
{
echo html($text);
}

当我做 var_dump($mydata); 我得到 NULL

4

1 回答 1

1

这不能按预期工作,因为htmlout() echoes 值而不是returning 它。

考虑更换

$mydata= htmlout($test['f']);

$mydata= html($test['f']);

您的代码中发生的事情是它只是打印出原始字符串,返回NULL$mydata然后您回显一个NULL不显示任何内容的内容。

于 2012-07-16T13:00:17.907 回答