我真的需要这么多回音,还是可以缩短它?
<?php
if (!empty($url))
{
echo '<p>Job: <span>' . $job .'</span></p>';
echo '<p>Skills: <span class="caps">' . $skills . '</span></p>';
echo '<p>Website: <a href="http://' . $url . '" title="' . $url . '">http://' . $url . '</a></p>';
echo '<p>Pay:' . $pay. '</p>';
} else {
echo'';
}
?>
答案 0 :(得分:10)
为什么不还原呢?
<?php if(!empty($url)) { ?>
<p>Job: <span><?=$job?></span></p>
<p>Skills: <span class="caps"><?=$skills?></span></p>
<p>Website: <a href="http://<?=$url?>/" title="<?=$url?>">http://<?=$url?></a></p>
<p>Pay: <?=$pay?></p>
<?php } ?>
答案 1 :(得分:7)
当然,并且不需要else
无效:
<?php
if(!empty($url)) {
echo "<p>Job: <span>{$job}</span></p>";
echo "<p>Skills: <span class=\"caps\">{$skills}</span></p>";
echo "<p>Website: <a href=\"http://{$url}\" title=\"{$url}\">http://{$url}</a></p>";
echo "<p>Pay: {$pay}</p>";
}
?>
......甚至:
<?php
if(!empty($url)) {
echo "<p>Job: <span>{$job}</span></p>
<p>Skills: <span class=\"caps\">{$skills}</span></p>
<p>Website: <a href=\"http://{$url}\" title=\"{$url}\">http://{$url}</a></p>
<p>Pay: {$pay}</p>";
}
?>
答案 2 :(得分:3)
如果要使用echo,则不需要连接多行或还原。你的问题的实际答案是这个(因为它仍然使用echo):
<?php
if (!empty($url))
{
echo '<p>Job: <span>' . $job .'</span></p>
<p>Skills: <span class="caps">' . $skills . '</span></p>
<p>Website: <a href="http://' . $url . '" title="' . $url . '">http://' . $url . '</a></p>
<p>Pay:' . $pay. '</p>';
}
?>
Php并不关心你使用多少行。
答案 3 :(得分:3)
我想你可以:
.
)进行字符串连接,并使用单个echo
echo
中使用多个字符串,以逗号“,
”分隔有关示例,请参阅echo
manual page。
对于第一个解决方案:
echo 'a' . 'b' . 'c';
而且,对于第二个:
echo 'd', 'e', 'f';
输出将是:
abcdef
另一种解决方案是在double-quoted string中使用变量插值:
$my_var = "test";
echo "this is a $my_var";
哪能得到你:
this is a test
例如,使用两者:
$job = 'my job';
$skills = 'my skills';
$url = 'google.com';
$pay = 3.14;
echo "<p>Job: <span>$job</span></p>"
. "<p>Skills: <span class=\"caps\">$skills</span></p>"
. "<p>Website: <a href=\"http://$url\" title=\"$url\">http://$url</a></p>"
. "<p>Pay:$pay</p>";
你会得到:
Job: my job
Skills: my skills
Website: http://google.com
Pay:3.14
但请注意,你必须逃脱"
,这不容易做到: - (
那么,另一个解决方案,基于heredoc syntax:
echo <<<STR
<p>Job: <span>$job</span></p>
<p>Skills: <span class="caps">$skills</span></p>
<p>Website: <a href="http://$url" title="$url">http://$url</a></p>
<p>Pay:$pay</p>
STR;
只有一个echo
,没有字符串连接,没有转义 - 还有什么可以要求的?
; - )
答案 4 :(得分:2)
当然这也可以做到这一点:
echo '<p>Job: <span>' . $job .'</span></p><p>Skills: <span class="caps"></span></p><p>Website: <a href="http://' . $url . '" title="' . $url . '">http://' . $url . '</a></p><p>Pay:' . $pay. '</p>';
您可以添加\n
以获得更易读的HTML。
或者你可以使用这个在PHP方面更具可读性的那个:
echo "<p>Job: <span>{$job}</span></p><p>Skills: <span class=\"caps\"></span></p><p>Website: <a href=\"http://{$url}\" title=\"{$url}\">http://{$url}</a></p><p>Pay:{$pay}</p>";
或者您可以使用更具可读性的heredoc语法:
echo <<<HTML
<p>Job: <span>$job</span></p>
<p>Skills: <span class="caps"></span></p>
<p>Website: <a href="http://$url" title="$url">http://$url</a></p>
<p>Pay:$pay</p>
HTML;
如果你真的想echo
,那么你可以切断其他分支 - 好吧 - 什么也没有。
答案 5 :(得分:0)
你可以用单个回声和连接来做所有这些,这只是“。” ,是的,你需要为else stmt再多一个echo。
答案 6 :(得分:0)
您可能想尝试sprintf。 你可以这样做:
<?php echo sprintf('<p>Job: <span>%s</span></p>', $job); ?>
答案 7 :(得分:0)
如果我是你,我会开始使用模板。那里有很多模板引擎......我强烈推荐Smarty。 http://www.smarty.net/
这将允许您将代码与显示逻辑分开。这意味着您可以选择不同的模板,或将模板提供给设计人员,而设计人员无需了解任何有关php的知识。它还允许您在以后查看代码并轻松调试/更改它。没有什么比尝试阅读整个html和php混杂的代码更糟糕了。
代码:
//this part will instigate a copy of smarty
require_once('/location_of_smarty_lib/Smarty/Smarty.class.php');
$blah = new Smarty();
$blah ->template_dir = '/location_of_smarty_lib/smarty/templates';
$blah ->compile_dir = '/location_of_smarty_lib/smarty/templates_c';
$blah ->cache_dir = '/location_of_smarty_lib/smarty/cache';
$blah ->config_dir = '/location_of_smarty_lib/smarty/configs';
//this part assigns variables to tags
$blah->assign('t_url',$url);
$blah->assign('t_job',$job);
$blah->assign('t_skills',$skills);
$blah->assign('t_pay',$pay);
//this will display the out put using the given template
$blah->display('yargh.tpl');
模板(称为yargh.tpl):
{if $t_url}
<p>Job: <span>{$t_job}</span></p>
<p>Skills: <span class="caps">{$t_skills}</span></p>
<p>Website: <a href="http://{$t_url}/" title="{$t_url}">http://{$t_url}</a></p>
<p>Pay: {$t_pay}</p>
{/if}
答案 8 :(得分:-1)
您可以,但为了便于阅读,最好是保留它吗?我认为这不会影响具有多个回声的脚本的性能。