• Velocity(10)——指令的转义


    引用的转义使用"",指令的转义也是使用""。但是,指令的转义要比引用的转义复杂很多。例如:

    #if($foo)
        Go!
    #end
    
    $foo为true,输出Go!;否则不输出任何内容。

    使用转义:

    #if( $foo )
        Go!
    #end
    
    此时,""和"#"结合,从而破坏了原本的#if(),而$foo作为判断条件,也不会被解析。所以上面这段代码,无论$foo是true还是false,结果都是
    
    #if( $foo )
        Go!
    #end
    这类似于使用了#literal() ... #end指令。

     如果使用两个"":

    \#if( $foo )
        Go!
    \#end
    
    首先,#if前面的两个假定$foo是true,那么会输出"Go!",并且是紧跟在刚才的""后面(因为没有换号符)。#if($foo)和#end之间的内容,都会输出,包括#end前面的两个"",它们会被解析为一个""。如果$foo是false,仅仅输出一个"",而"Go!"以及后面下一行的""不会输出。""结合,变为一个""输出。然后#if($foo)正常处理。

    还有一种情况需要说明:

    \#if($foo)
        Go!
    \#end
    
    前两个""被解析为"",第三个""和后面的"#"解析为"#",#if()被破坏。所以输出就是 #if($foo)
       Go!
    ......
    注意最后那里,有一个合法的#end,但是它是多余的,所以这一段代码是会报错的。
  • 相关阅读:
    0425正则数组
    0424php函数
    0424php基础
    string类例题
    数组分为一维数组,二维数组,多为数组
    string类 截取的长度 是否包含某个数
    循环语句2
    /异常语句try,catch.
    string类
    循环语句
  • 原文地址:https://www.cnblogs.com/faunjoe88/p/5888347.html
Copyright © 2020-2023  润新知