我有以下简单的替换工作
<?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
答案 0 :(得分:1)
这不符合预期的效果,因为htmlout()
echo
是值而不是return
。
考虑更换
$mydata= htmlout($test['f']);
与
$mydata= html($test['f']);
您的代码中发生的事情是,它只是打印出原始字符串,将NULL
返回到$mydata
,然后您回显NULL
,但不会显示任何内容。