PHP echo soru?

8 Cevap php

Gerçekten bu çok yankı bulunuyor ihtiyacınız var mı ya da ben daha kısa yapabilirsiniz?

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

8 Cevap

Neden onu geri değil?

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

Tabii, ve bir else hiçbir şey yok buna gerek yok:

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

?>

... Hatta:

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

?>

Eğer yankı kullanmak istiyorsanız birden fazla satır birleştirmek ya dönmek için ihtiyacım yok. (Hala yankı kullanması nedeniyle) Sorunuzun asıl cevabı şudur:

  <?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 kullanmak kaç satır umursamıyor.

Ben ya olabilir varsayalım:

  • (.) dizeleri birleştirme için nokta kullanmak, ve bir tek echo kullanın
  • veya virgülle ayrılmış tek bir echo birkaç dizeleri, ',' kullanın

Örnekler için echo manuel sayfasını , bkz.

Ilk çözüm için:

echo 'a' . 'b' . 'c';

Ve, ikinci için:

echo 'd', 'e', 'f';

Ve çıkış olacaktır:

abcdef


Another solution would be to use variable interpolation in
double-quoted string :

$my_var = "test";
echo "this is a $my_var";

Seni alacak olan:

this is a test


For instance, using a bit of both :

$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>";

Alırsınız:

Job: my job
Skills: my skills
Website: http://google.com
Pay:3.14

Ama :-( yapmak kolay değil ki, " kaçmak gerekir unutmayın


So, yet another solution, based on 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;

Only one echo, no string concatenation, no escaping -- what else could one ask for ?
;-)

Tabii ki bu da işi yapardı:

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

Sen daha okunabilir HTML için \n s ekleyebilirsiniz.

Ya PHP tarafında daha okunabilir olan bu birini kullanabilirsiniz:

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

Yoksa bile daha okunabilir metin sözdizimi kullanabilirsiniz:

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;

- De - hiçbir şey gerçekten istiyorsanız echo Sonunda başka dalı kesebilir.

Sen sadece olan tek yankı ve birleştirme ile tüm yapabilir "." Ve evet başka stmt için bir daha yankısını gerekecektir.

I olsaydı ben şablonları kullanarak başlamak istiyorum. Orada çiftleşmiş motorları çok sayıda vardır .. ben çok Smarty öneririz. http://www.smarty.net/

Bu, ekran mantığı kodunuzu ayrı sağlayacaktır. Bu farklı bir şablon seçin veya php hakkında hiçbir şey bilmek gerekmez bir tasarımcı, şablonunuzu vermek anlamına gelir. Ayrıca daha sonraki bir tarihte sizin kod gidip kolayca debug / değiştirmek için izin verecektir. Boyunca içe html ve php olan kod okumaya çalışırken daha kötü bir şey.

kodu:

//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');

şablonu (yargh.tpl olarak da adlandırılır):

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

Sen, ancak okunabilirliği amaçlar için olduğu gibi tutmak için iyi olurdu olabilir? Ben sizin komut birden yankılanırken sahip performansını zarar sanmıyorum.