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
PHP回声问题?_Php_Syntax_Refactoring - Fatal编程技术网

PHP回声问题?

PHP回声问题?,php,syntax,refactoring,Php,Syntax,Refactoring,我真的需要这么多回音还是可以把它缩短 <?php if (!empty($url)) { echo '<p>Job: <span>' . $job .'</span></p>'; echo '<p>Skills: <span class="caps">' . $skills . '</span></p>'; echo '<p>Website: <a hr

我真的需要这么多回音还是可以把它缩短

<?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'';
} 
?>

您可以使用单回显和串联来完成所有这些,它只是“.”,是的,您需要为else stmt多做一个回显。

您可以使用单回显和串联来完成所有这些,它只是“.”,是的,您需要为else stmt多做一个回显。

为什么不还原它

<?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 } ?>

工作:

技能:

网站:

薪酬:

为什么不还原它

<?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 } ?>

工作:

技能:

网站:

薪酬:


当然,而且不需要一个什么都不做的

<?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>";
}

?>

当然,而且不需要一个什么都不做的

<?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>";
}

?>

您可能想试试。 您可以执行以下操作:

<?php echo sprintf('<p>Job: <span>%s</span></p>', $job); ?>

您可能想试试。 您可以执行以下操作:

<?php echo sprintf('<p>Job: <span>%s</span></p>', $job); ?>


可以,但为了便于阅读,最好保持原样吗?我认为这不会影响脚本的多回音性能。

可以,但为了可读性,最好保持原样?我不认为这会影响具有多个echo的脚本的性能。

如果要使用echo,不需要连接多行或还原。您的问题的实际答案如下(因为它仍然使用echo):



Php不关心使用多少行。

如果要使用echo,不需要连接多行或还原。您的问题的实际答案如下(因为它仍然使用echo):



Php不在乎你用了多少行。

我想你可以:

  • 使用点(
    )进行字符串连接,并使用单个
    回音
  • 或者在单个
    回显中使用多个字符串,用逗号“
    ”分隔
例如,请参见

对于第一种解决方案:

echo 'a' . 'b' . 'c';
第二点:

echo 'd', 'e', 'f';
输出将是:

abcdef

另一种解决方案是在以下情况下使用变量插值:

这将使你:

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>";
但请注意,您必须避开
,这并不容易:-(


因此,另一个解决方案基于:


echo我想你可以:

  • 使用点(
    )进行字符串连接,并使用单个
    回音
  • 或者在单个
    回显中使用多个字符串,用逗号“
    ”分隔
例如,请参见

对于第一种解决方案:

echo 'a' . 'b' . 'c';
第二点:

echo 'd', 'e', 'f';
输出将是:

abcdef

另一种解决方案是在以下情况下使用变量插值:

这将使你:

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>";
但请注意,您必须避开
,这并不容易:-(


因此,另一个解决方案基于:


echo当然这也可以:

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当然这也可以:

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如果我是你,我会开始使用模板。有很多模板引擎。我强烈推荐Smarty

这将允许您将代码与显示逻辑分离。这意味着您可以选择不同的模板,或将模板交给不需要了解任何php知识的设计师。这还将允许您在以后检查代码并轻松调试/更改它。没有什么比尝试读取包含html的代码更糟糕的了d php贯穿始终

代码:

模板(称为yargh.tpl):

{if$t_url}
作业:{$t_作业}

技能:{$t_技能}

网站:

Pay:{$t_Pay}

{/if}
如果我是你,我会开始使用模板。有很多模板引擎。我强烈推荐Smarty

这将允许您将代码与显示逻辑分离。这意味着您可以选择不同的模板,或将模板交给不需要了解任何php知识的设计师。这还将允许您在以后检查代码并轻松调试/更改它。没有什么比尝试读取包含html的代码更糟糕的了d php贯穿始终

代码:

模板(称为yargh.tpl):

{if$t_url}
作业:{$t_作业}

技能:{$t_技能}

网站:

Pay:{$t_Pay}

{/if}
注意,像
这样的短标记是正确的。需要注意的是。这是一个很好的方法,arrr。还要研究if:endif:syntax。我真的不理解if:endif的吸引力。如果你的代码正确缩进,就永远不会有任何需要endif的歧义。Citizen,没有
echo
要求。Th问题是一个人是否需要这么多回声,还是可以把它缩短;-)注意像
True这样的短标记。需要注意的是。这是一个很好的方法,arrr。还要研究if:endif:syntax。我真的不理解if:endif的吸引力。如果你的代码正确缩进,就永远不会有任何需要endif的歧义。公民,没有
echo
要求。任务“连接”是指一个人是否需要这么多回音,或者是否可以将其缩短;-)不过,我发现这种连接方式不如其他方法可读。如果不需要多回音,就不应该使用它们。@Citizen不一定。有时,一些额外的echo语句可以极大地提高可读性,而性能损失基本为零。不过,我发现这种连接方式的可读性不如某些替代方法。如果不需要mulitples,就不应该使用它们。@Citizen不一定。萨米特