php/html混写

有人认为用php开发出的如smarty等模板引擎是一种倒退,因为php是一种天生的web语言,它本身的标签已经能很好的满足要求。在这里我们不讨论哪一种看法更对,而是总结php如何更好的与html结合。
在探讨前,我们需要区别下在php中单引号'和双引号的不同:即双引号可以包含一个变量,而单引号却不能,看代码。

$var = 'this is a variable';
echo '$var'; //$var;
echo "$var"; //this is a variable;

单/双引号包裹内容

echo '

    
        I hope this doc do not include variable
    

';

$variable = "content";
echo "

    This doc can include some $variable

";

使用sprintf、vsprintf等函数

sprintf等包含printf的函数可以输出格式化的字符串,sprintf和vsprintf函数可以将格式化后的字符串赋值给一个变量,而不是直接打印。

$content = sprintf('%s',"seo");
echo $content;

显然,这个函数不适合变量太多的格式化输出,因为,会连自己都忘记,变量和占位符没有明显的映射关系,只是通过顺序来对应,很难区分。

HEREDOC/NOWDOC

这是5.3之后的新特性,可以用自定义的标签包含文档。常用的标签包括:HTML,EOF,EOT,LABEL等。

$title = "关于seo的文章";
$content = "seo的意思是搜索引擎优化……";
$str = <<
    
        
        $title
    
    $content

HTML;//解析了变量
$str = <<<'HTML'

    
        
        $title
    
    $content

HTML;//没有解析变量

echo $str;

在phpstorm等IDE里,能很好的解决着色问题。
在不方便使用php标签和模板引擎的情况下,以上的三种方法能很好的解决php与html混合的问题。

你可能感兴趣的:(php/html混写)