注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

@fc_lamp

关注Web应用解决方案MySql/PHP/Python一盏名为"飞川"的灯~

 
 
 

日志

 
 

关于PHP 字符串的申明方式(PHP <<<HTML 语法)  

2010-09-09 17:35:00|  分类: Web技术-Php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
关于PHP 字符串的申明方式(PHP <<<HTML 语法)
一? PHP 的字符串的申明方式有四种:
?? (1)‘’:单引号, $str = 'string';
(2)? "":又引号,?? $str = "string";
(3)? heredoc:heredoc语法,$str = <<<HTML.....HTML;
(4)? nowdoc:??? nowdoc 语法,$str = <<<'HTML'......HTML;(此种语法要PHP 5.3才支持)

二详细:
相必大家对1,2种方式都比较熟悉了,我就不多说了,这里主要说说 PHP 的 heredoc <<< 和 nowdoc <<<? 语法.

??? 1 Heredoc <<< 语法
Heredoc 语法以<<< 开始,后面跟上一个合法的任意标识符(所谓合法是指:符合在PHP中定义标识符的规则:必须只包含字母数字,下划线,并且不能以数字或者下划线开头),并且单独成一行。然后,字符串接在它下面,最后用相同的标识符作为结束标记。
例如:
$str = <<<HTML
FSDFSDFJSDF
HTML;


$s = 'aa';
echo <<<HTML
FSDFSDFJSDF{$s},
"$s"
HTML;

以上文字有值得注意的是:(注意:所说的"任何字符")
(1) 开始标识与结束标识符是完全一样的,而且他们都是在一行上,后面没有跟上任何字符,包括空格。特别是结束标识符,它是单独成一行的,也就是说它的前后都没有任何字符(当然:除了可能是一个分号(;))。 另外标识符,一般建议都用大写字母。

(2) 当要在字符中解析变量时,可用双引号,大括弧号来限定。

(3)? 结束标识符是不能作为整个脚本的结束符的,也就是说当结束符的下一行,没有任何字符时,将会报解析错误。

(4)Heredoc 还不能在类中作初始化变量的值。
如:
????????????????????????????????????????????? class?foo?{
public?$bar?=?<<<EOT
??????????????????????????????????????????????? ? ? ? ? ?? bar
????????????????????????????????????????????? EOT;
}


(5) 此语法需要PHP4以上支持

??? 2 Nowdoc <<< 语法
????????? nowdoc 与heredoc 语法类似,只不过在<<<后跟上的开始标识符上要加上单引号(<<<'HTML')nowdoc中,不会作语法解析,这点与单引号一样。有了nowdoc,在需要原样大量输出PHP代码时就会很有用。
例子:

$str?=?<<<'EOD'
Example?of?string
spanning?multiple?lines
using?nowdoc?syntax.
EOD;

/*?More?complex?example,?with?variables.?*/
class?foo
{
public?$foo;
public?$bar;

function?foo()
{
$this->foo?=?'Foo';
$this->bar?=?array('Bar1',?'Bar2',?'Bar3');
}
}

$foo?=?new?foo();
$name?=?'MyName';

echo?<<<'EOT'
My?name?is?"$name".?I?am?printing?some?$foo->foo.
Now,?I?am?printing?some?{$foo->bar[1]}.
This?should?not?print?a?capital?'A':?\x41
EOT;

??????
注意:
???????????????????????????? (1)Nowdoc 允许在类中作初始化变量的值。
如:
????????????????????????????????????????????? class?foo?{
public?$bar?=?<<<'EOT'
??????????????????????????????????????????????? ? ? ? ? ?? bar
????????????????????????????????????????????? EOT;
}


??????????????????????????? (2) 此语法需要PHP5.3.0以上支持

另注: 更多信息请看官网文档
  评论这张
 
阅读(145)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017