注意这里的坑:如果没有定义任何命名空间,所有的类与函数的定义都是在全局空间,与 PHP 引入命名空间概念前一样。在名称前加上前缀 \ 表示该名称是全局空间中的名称,即使该名称位于其它的命名空间中时也是如此。
<?php namespace A\B\C; /* 这个函数是 A\B\C\fopen */ function fopen() { /* ... */ $f = \fopen(...); // 调用全局的fopen函数 return $f; } ?>
推荐更多阅读:
字符串的连接建议:
<?php $a = 'Multi-line example'; // 用了 (.=) 连接字符串 $a .= "\n"; $a .= 'of what not to do'; // vs $a = 'Multi-line example' // 字符串运算符 (.) . "\n" // 新的一行缩进 . 'of what to do';
推荐更多 PHP String 的阅读:
这里主要说下著名的PHP字符串到底用单引号还是双引号的问题:
$thing
,需要用字符串连接符连接他们: 'some '.$string<?php // 单引号不会解析里面的变量 echo 'This is my string, look at how pretty it is.'; /** * Output: * * This is my string, look at how pretty it is. */
推荐更多阅读:
<?php // 单引号连接变量的一种方式 echo 'phptherightway is ' . $adjective . '.' . "\n" // 双引号 . 'I love learning' . $code . '!'; // vs echo "phptherightway is $adjective.\n I love learning $code!" // 强大的双引号
双引号可以包含变量; 这被称为“插值”。
<?php $juice = 'plum'; echo "I like $juice juice"; //输出: I like plum juice
但注意这里有个坑,看下面代码:
<?php $juice = 'plum'; //注意插值 $juice 不被解析! echo "I drank some juice made of $juices"; // vs $juice = 'plum'; // $juice 这样{}包起来才被解析 echo "I drank some juice made of {$juice}s"; /** * 复杂变量也将在大括号内解析 */ $juice = array('apple', 'orange', 'plum'); // $juice[1] 将被解析替换 echo "I drank some juice made of {$juice[1]}s";
推荐更多阅读: