1.双引号和heredoc中,能够识别变量和特殊字符,转移序列。单引号和nowdoc中不可以识别。
2. Heredocs 结构不能用来初始化类的属性。自 PHP 5.3 起,此限制仅对 heredoc 包含变量时有效。Heredocs结束时所引用的标识符必须在该行的第一列
3. 在 PHP 5.3.0 以后,也可以用 Heredoc 结构来初始化静态变量和类的属性和常量
function foo()
{
static $bar = <<<LABEL
Nothing in here...
LABEL; //注意 LABEL必须放在第一列
}
4.php5.3以后,还可以用双引号来声明标示符
<?php
echo <<“FOOBAR”
hello world!
FOOBAR;
5.nowdoc和heredoc类似,将标示符号用单引号括起来就成了nowdoc,只是不会进行解析变量和特殊字符。因此nowdoc很适合嵌入PHP代码或其他大段不需要解析的文本。
$ta = <<<'EOD'
this is doc
$b test //变量$b将不会被解析。
EOD;
6.在“”和heredoc中可以直接用$varname来访问变量,但只限于简单的变量,如果遇到关联数组,a->b-c,$arr[1][2][3]等复杂的表达式时,需要用花括号将其括起来。否则无法访问。由于 { 无法被转义,只有 $ 紧挨着 { 时才会被识别。可以用 {\$ 来表达 {$。
// 无效,输出: This is { fantastic}
echo "This is { $great}";
// 有效,输出: This is fantastic
echo "This is {$great}";
echo "This is ${great}";
7.字符串可以看作是数组,用str[1] = 3;来负值和使用。在php中还可以用{}访问。
$foo = "hello";
$foo{0} = 'y';
$foo[1] = "d";
Warning
用超出字符串长度的下标写入将会拉长该字符串并以空格填充。非整数类型下标会被转换成整数。非法下标类型会产生一个 E_NOTICE 级别错误。用负数下标写入字符串时会产生一个 E_NOTICE 级别错误,用负数下标读取字符串时返回空字符串。写入时只用到了赋值字符串的第一个字符。用空字符串赋值则赋给的值是 NULL 字符。
Warning
PHP 的字符串在内部是字节组成的数组。因此用花括号访问或修改字符串对多字节字符集很不安全。仅应对单字节编码例如 ISO-8859-1 的字符串进行此类操作。
8.用 [] 或 {} 访问任何其它类型(不包括数组或具有相应接口的对象实现)的变量只会无声地返回 NULL。
$a = 3;
echo $a[0]; //什么都没有。。
9.字符串可以用.运算符连接,但不能用+连接
10.常用的函数
2. Heredocs 结构不能用来初始化类的属性。自 PHP 5.3 起,此限制仅对 heredoc 包含变量时有效。Heredocs结束时所引用的标识符必须在该行的第一列
3. 在 PHP 5.3.0 以后,也可以用 Heredoc 结构来初始化静态变量和类的属性和常量
function foo()
{
static $bar = <<<LABEL
Nothing in here...
LABEL; //注意 LABEL必须放在第一列
}
4.php5.3以后,还可以用双引号来声明标示符
<?php
echo <<“FOOBAR”
hello world!
FOOBAR;
5.nowdoc和heredoc类似,将标示符号用单引号括起来就成了nowdoc,只是不会进行解析变量和特殊字符。因此nowdoc很适合嵌入PHP代码或其他大段不需要解析的文本。
$ta = <<<'EOD'
this is doc
$b test //变量$b将不会被解析。
EOD;
6.在“”和heredoc中可以直接用$varname来访问变量,但只限于简单的变量,如果遇到关联数组,a->b-c,$arr[1][2][3]等复杂的表达式时,需要用花括号将其括起来。否则无法访问。由于 { 无法被转义,只有 $ 紧挨着 { 时才会被识别。可以用 {\$ 来表达 {$。
// 无效,输出: This is { fantastic}
echo "This is { $great}";
// 有效,输出: This is fantastic
echo "This is {$great}";
echo "This is ${great}";
7.字符串可以看作是数组,用str[1] = 3;来负值和使用。在php中还可以用{}访问。
$foo = "hello";
$foo{0} = 'y';
$foo[1] = "d";
Warning
用超出字符串长度的下标写入将会拉长该字符串并以空格填充。非整数类型下标会被转换成整数。非法下标类型会产生一个 E_NOTICE 级别错误。用负数下标写入字符串时会产生一个 E_NOTICE 级别错误,用负数下标读取字符串时返回空字符串。写入时只用到了赋值字符串的第一个字符。用空字符串赋值则赋给的值是 NULL 字符。
Warning
PHP 的字符串在内部是字节组成的数组。因此用花括号访问或修改字符串对多字节字符集很不安全。仅应对单字节编码例如 ISO-8859-1 的字符串进行此类操作。
8.用 [] 或 {} 访问任何其它类型(不包括数组或具有相应接口的对象实现)的变量只会无声地返回 NULL。
$a = 3;
echo $a[0]; //什么都没有。。
9.字符串可以用.运算符连接,但不能用+连接
10.常用的函数
strval 将其他类型转换为字符串(TRUE 为 1 false为NULL)
explode 分割字符串
implode 将一纬数组合并为字符串
htmlspecialchars 将特殊符号比如<,>,注册商标,&等转化为HTML实体,<>等等。
htmlspecialchars_decode 与上面相反。
ltrim,rtrim,trim
md5
nl2br 字符串所有新行之前插入html标签<br>
sha1
str_replace
str_repeat
strcmp
strip_tags 从字符串中取出HTML和PHP标记
stripos strpos 查找字符串位置,区分不区分大小写两个。
strlen
《完》