php string

Heredoc 结构(heredoc 结构类似于双引号字符串)

语法:

在 <<< 之后要提供一个标识符,然后换行。接下来是字符串 string 本身,最后要用前面定义的标识符作为结束标志。

结束时所引用的标识符必须在该行的第一列,而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。结束标识符这行除了可能有一个分号(;)外,绝对不能包含其它字符。这意味着标识符不能缩进,分号的前后也不能有任何空白或制表符。更重要的是结束标识符的前面必须是个被本地操作系统认可的换行,而结束定界符(可能其后有个分号)之后也必须紧跟一个换行

 

语法规范:       
$bar = <<<LABEL // 这儿放字符串 LABEL;

 

应用示例:

class Test {
// 类的属性
    public $bar = <<<EOT
World!
EOT;
// 类的常量
    const A = <<<FOOBAR
AAAA
FOOBAR;

    public function index()
    {
        // 静态变量
        static $test = <<<LABEL
TIME
LABEL;
        // 数组
        $arr = array(<<<EOD
footbar!
EOD
);
        // 在 heredoc 结构中使用双引号
        echo <<<"FOOBAR"
Hello $this->bar
FOOBAR;
        var_dump($this->bar);   // string 'World!'
        var_dump($test);        // string 'TIME'
        var_dump($arr);         // array (size=1)0 => string 'footbar!'
        var_dump(self::A);      // string 'AAAA'
    }
}

 

Nowdoc 结构

 nowdoc 结构类似于单引号字符串,不进行解析操作, 跟在后面的标识符要用单引号括起来,其它的所有规则跟 heredoc 结构一样,尤其是结束标识符的规则

//最典型的示例是用来初始化类的属性或常量
class
index{ public $bar = <<<'EOT' bar EOT; }

 

字符串转换为数值

1、若字符串没有包含 '.','e' 或 'E' 且其数字值在 PHP_INT_MAX 的范围之内,该字符串将被当成 integer 来取值。其它所有情况下都被作为 float 来取值。

2、该字符串的开始部分决定了它的值。如果该字符串以合法的数值开始,则使用该数值。否则其值为 0。合法数值由可选的正负号,后面跟着一个或多个数字(可能有小数点),       再跟着可选的指数部分。指数部分由 'e' 或 'E' 后面跟着一个或多个数字构成

$foo = 1 + "10.5";                // $foo is float (11.5)
$foo = 1 + "-1.3e3";              // $foo is float (-1299)
$foo = 1 + "bob-1.3e3";           // $foo is integer (1)
$foo = 1 + "bob3";                // $foo is integer (1)
$foo = 1 + "10 Small Pigs";       // $foo is integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
$foo = "10.0 pigs " + 1;          // $foo is float (11)
$foo = "10.0 pigs " + 1.0;        // $foo is float (11)  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-03-15 17:59  Chrdai  阅读(168)  评论(0编辑  收藏  举报