我的代码有什么问题??? :
function my_function()
{
$states = array('schwarz', 'rot', 'blau');
$path = '';
foreach ($states as $state) {
$testPath = sprintf('transactions/Ordner/%s.png', $state);
if (file_exists($testPath)) {
$path = $testPath;
echo $path;
}
else {
$defaultPath = "inventory_images/8.jpg";
echo $defaultPath;
}
}
}
$imagesPerLine = array(1=>2, 2=>3); $default = 4;
$lines = array(1, 2, 3);
$html="";
foreach ($lines as $line) {
if (!isset($imagesPerLine[$line])) {
$imagesPerLine[$line] = $default;
}
$html.= "<tr>\n";
for ($i = 1; $i <= $imagesPerLine[$line]; $i++) {
$html.=sprintf("<td>%s</td>\n", my_function());
}
$html.="</tr>\n";
}
echo $html;
我想,我将my_function()包含在“td-tag”中,但它不起作用,因为我的变量($ path和$ defaultPath)都没有被回显。 我找不到我的错误,你能帮助我吗?...问候
答案 0 :(得分:1)
您应该return
而不是echo
。
为简化起见,我们将您的代码更改为:
$text = my_function();
$html = sprintf("<td>%s</td>\n",$text);
出于所有实际目的,这与原始代码相同。
您的my_function()
来电包含echo
声明。评估它们并发送输出。函数本身没有return
语句,因此您的代码实际上变为:
echo "something";
$text = null;
$html = sprintf("<td>%s</td>",$text);
使用return
代替您的代码正常工作。