Heredoc 类似与双引号,内部转义字符和变量可以被解析,句法结构为

<<<EOT

字符串

EOT;

其中 EOT 为标识符,可以自定义,但是首尾标识符必须相同。开始标识符 EOT 后需换,结束标识符 EOT 必须独占一行,且前面不许有空格。

<?php
$a ='Hello' ;
echo <<<EOT
$a Hello
EOT;
  • Nowdoc

Nowdoc 类似于单引号,无法解析转移字符和变量。句法结构类似 Heredoc,但是需要在开始标识符加上单引号。

<?php
$a ='Hello' ;
echo <<<'EOD'//和 Heredoc 不同点
$a Hello
EOD;

 

<?php

$a = 'Hello';
$b = '$a World';
$c = "ShiYanLou";

$c = <<<EOT
$a \n World
EOT;

$d = <<<'EOT'
$a \n $c
EOT;

var_dump($b);
var_dump($c);
var_dump($d);

结果输出

string(8) "$a World"
string(13) "Hello 
 World"
string(8) "$a \n $c"

 

数据类型(二)

Array 数组

语法

定义数组可以用 array() 或 [] 来新建一个数组。它接受任意数量用逗号分隔的键(key) => 值(value)对。key 可以是 integer(索引数组)或者 string(关联数组),value 可以是任意类型,如对象、数组。

<?php

$a = [
    "b" => "bb",
    "c" => "cc",
];

$b = [
    "bb",
    "cc"
];
$c = [
    "bb",
    "cc",
    "a" => $a,
    "b" => $b,
];

var_dump($a);
var_dump($a[0]);
var_dump($b);
var_dump($b['b']);
var_dump($c['a']['b']);

结果输出

array(2) {
  ["b"]=>
  string(2) "bb"
  ["c"]=>
  string(2) "cc"
}
NULL
array(2) {
  [0]=>
  string(2) "bb"
  [1]=>
  string(2) "cc"
}
NULL
string(2) "bb"

从结果中可以看到

  • 如果没有键名,则数组默认使用从 0 开始的数字键名
  • 打印数组不存在的 key 的值时,直接返回 NULL
  • 数组可以多维嵌套,通过键名可以获取特定值

Object 对象

使用 new 可以创建一个新的对象

<?php

class foo
{
    function do()
    {
        echo "Action do"; 
    }
}

$f = new foo;
$f->do();

转换为对象

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。