01.归纳——律师、教师、领导者——福尔摩斯
02.分析思考——程序设计师、领导、重大决策
03.数字敏感
04.使用小型工具——钟表匠、艺术品、修理
05.观察力——科学研究、考古、天文
比较也许是最常用的字符串操作之一。有时PHP的动态类型机制也时常令人疯狂——尤其是因为字符串往往可以暗地里转换成等价的数值。考虑下面例子代码:
$string = '123aa';
if ($string == 123) {
// $string等于数值123
}
原本期望两个不同的操作数比较返回false。但是,PHP会在比较值钱吧$string转换为数值型也就是整数123,因此比较结果就是true。那么我们显然应该使用全等操作符===来执行比较,这样可以很好的规避动态类型带来的问题。
字符串有很多种定义方法。最常见的,我们会用单引号或者双引号括起来的。与其他语言不同的是,这两种方法有些不同之处:单引号说明它仅仅只是字符串,即见即所得。双引号则是混合字符串,允许转义序列(例如,插入特殊字符)与动态替换,提供了对字符串动态嵌入值而不需要其他操作符的能力。
转义序列有时被称为“控制字符”与采用一个反斜杠“\”后面跟随一个或更多字符的形式。或许换行\n是用的最多的转义序列。在下面的例子中,我们使用了十六进制与八进制的标记输出一个星号:
echo "\x2a"; echo "\052";
我们在“PHP基础”章节中提到过,在PHP中字符串被扣了很多“帽子”——且不说仅把其当成文本字符收集器,它们可以用来存储任何类型的二进制数据——PHP天生就不能直接处理被编码的文本,但是可以直接操作文本中字符。
字符串操作对于PHP开发者来说非常重要——事实上,在考试中会出现不少有关的题目让你把字符串反转或者需要你去掉字符串中的空格。因此考试前你应该非常熟悉这些技巧。
记住,无论如何,请把字符串作为一个重点来掌握;再次,其下要学习的是最有可能考到的知识点。
献上目录:
数组也许是至今来说对于PHP开发者来说数据组织能力最强工具。因此,学好它可以为成为一名优秀的开发者打下基础。
当然,对于通过考试来说,你也没有必要把手册中关于数组的知识完全掌握,但是对于在学习时适当的做一些笔记是非常重要的:因为数组常被用来操作庞大数量的数据,对此PHP的内建函数的运行效率绝对会比任何自定义函数来的高,因此,可以给程序带来良好的运行效率与可伸缩性。
数组常被当作堆栈(后进先出:LIFO)与队列(先进先出:FIFO)结构来使用。PHP提供了一组函数可以用于push与pop(堆栈)还有shift与unshift(队列)来操作数组元素。
PHP核心提供了总共11个函数用来处理各种不同的数组排序需求。最简单也是最直接的是使用sort(),来对数组中元素进行基于值的排序:
$array = array('a' => 'foo', 'b' => 'bar', 'c' => 'baz');
sort($array);
var_dump($array);
就像看到的那样,sort()改变的数组原始变量,参数通过引用传递。这就意味着只能传入变量,而不是直接量。
执行结果如下:
array(3) {
[0]=>
string(3) "bar"
[1]=>
string(3) "baz"
[2]=>
string(3) "foo"
}遍历数组是数组最常见的操作之一。与其他语言的数组的连续索引的特性不同,PHP提供了对松散机制的数组的支持,因为普通的循环无法遍历那些键值不连续的数组。试想下例:
$a = array ('a' => 10, 10 => 20, 'c' => 30);
很明显,我们学过的尚无应付以上数组遍历操作的循环结构——除非,你很清楚数组中所有元素的键值,手动操作来实现遍历将是非常痛苦的。
(Siemen注:本章学习的就是如何使用PHP对于松散的数组提供的支持)