php自定义字符串分界符代替双引号分界符
php里面默认使用双引号或者单引号做字符串分割,这样当字符串里面出现对应的单双引号的时候,就必须使用”\”转义符,才不至于报错。这个东东虽然看起来有些不爽,但是比较已经习惯了,今天看到一个不用写转义符的办法,就是自定义分界符字符串的办法。看上去很不错,记录一下。
一、使用范例
范例如下:
$vrl="http://baidu.com"; echo " <a href=\"$vrl\">百度网站</a> "; echo <<< test <a href="$vrl">百度网站</a> test;123 test;
二、一点点解释
可以看到,双引号单引号啥的都不用转义了。hoho,这对于输出html字符串的时候真是一个天大的好消息。而且这个自定义的字符串如果在正文部分出现的话,也不用做转义哦,相当的不错。见上例中的“test”。这个“test”就是个自定义的分界符,它紧跟在”<<<”后面,而最后以“自定义符号;”结束。当然这个结束时以最后一个出现的做匹配的,期间出现的类似东东都会输出哦。不错的说。
三、一点点小问题
在这里里面,搞变量的时候,出现了了个小插曲,一个变量后面紧接了一个普通字符串,这个时候就报错了。如:$this->webroot.”test/”。因为这种特殊定义的分界符会使””具有的特殊含义失去。所以这里如果写成$this->webroottest/或者$this->webroot.”test/”报错的说。真是有利又有弊啊。我看网上的解决方法是,先赋值到一个变量,然后再到这个echo中引用这个变量。如:
$js=$this->webroot.”test/”; echo <<< test <script src=’$js’></script> test;
后来jack说,可以使用{}把变量包裹起来,就行了。试了试,果然好用。hoho。
echo <<< test
<script src=’{$this->webroot}test/’></script>
test;
又试验发现,如果这个结束符不顶格写,而是前面有空格的话,是会报错的说。很是崩溃。
本文来自苏南的博客, 转载请注明网址:http://newsn.net, 谢谢!
我的淘宝小店:http://68zz.com
我的Sina圈子:http://q.blog.sina.com.cn/pctalk
