虽然PHP为换行符号提供了一个跳脱转义序列(
),但让你知道能够在字串中间从字面上加入换行符号也不错,PHP同样能够处理这种形式。在建立HTML字串时这样会很方便,因为浏览器会忽略(
)换行符号,因此可以用换行符号格式化字串,使得PHP程式码行更短:
在文字编辑器中,在前两行尾端隐藏按「Enter」键,这些换行符号保留在字串中,因此一条print叙述可以产生三行PHP输出(行的长度则取决于各种不同编辑器,如果编辑器在显示它们时自动换行,就会看到实际是一长条的三行程式码)。不过浏览器程式会忽略这些换行符号,并自己决定显示时是否换行以及在何处换行,此外如果使用你的浏览器的检视原始码观察原始码的话你会看到这些换行。
限制
对于字串长度没有什么人为的限制,只要在可用的记忆限度内即可,一般应该能不去限制字串长度
阵列
PHP的阵列型别使得程式设计者能够将许多不同型别的值组织在一起,并按照字(也可以按名称)对其进行索引。如果你发现自己在使用名字类似$ thing1、$thing2、 $thing3之类的变数,那就建议你应该采用阵列($things[1]、$thing[2]、 $thing[3]等)。阵列元素是透过方括号中的索引(在这个例子子中是)[1]、 [2]、 [3]等)来使用的,不同型别的元素可指定到同一个阵列中。
学习PHP阵列的最好方式就是透过范例。下面是一些简单的程式范例子,在第一次指定前和指定后查看阵列变数的内容:
让我们来说明第一次指定前和指定后发生的什么。在指定前,尽管有了名字,但PHP并不知道变数$my_array的目的是要成为一个阵列,只把它当成与其它变数一样的未指定变数。这意思是说在该变数括到双引号字串时,变数被解释为空字串。阵列索引所参照引用([5])到未指定的变数时一样会作未指定变数。结果是前三条print叙述都以[is]为结尾。
指定之后,$my_array正式成为一个阵列,而结果是在含到双引号字串时列印出「Array」字串。由数字5索引的阵列格已填入了字串「Slot#6」(实妹上,在大多数程式语言中,阵列元素是从0开始计数的)因此可用编号5的索引取字串。这是唯一发生变化的地方$my_array 的第0格还是没有东西,所以和之前一样没有变化。
阵列的执行
阵列是PHP最酷且最有用的功能之一,虽然它们看上去好像类似其它语言中的阵列,但实际上是相当不贩方式来实行的。
在大多数程式设计语言中,会用类似下面的语句来宣告一个阵列:
Int int_array[10] ;//这不是PHP语法呼和哦!
该语句总共会记忆体中设置十个连续的整数,这些变数可按照int_array范围为0 ~9的编号索引来存取。
另一方面,PHP阵列是可以相互结合的,当进行阵列指定时,实际上添加一个新的囝列格,把它和一个新的索引组合在一起,这个索引可用来获取该值[对于熟悉准凑表(hash table)的程式设计来说这是很有意义的,PHP阵列更像其它语言中的准凑表]。
这里暗示了一件事,那就是读者不用担心指定一个数量非常高的阵列格,例如:
My_ayyay[100000000]= not scary//这个就没问题了
因为这样设的结果并不会真的出现很很多的格位,中间那些格位都不存在,因此也不会占用任何记忆体。
字串做为阵列索引
到目前为止,我们的阵列范例子只使用整数来索引编号,其实PHP也可以使用字串值做为索引,例如:
$tasty[‘Spanish’]= paella;
$tast [‘Japanese’]= sashimi;
$tast [‘Scottish’]= haggis?;
这些索引与数字索引的使用方式相同,而且数字和字串索引可用于同一个阵列,它们不会有冲突。
结构型别怎么不见了?
有些程式语言(C、Pascal)提供了「结构(structure)」或「纪录(record)」型别,允许把不同型别的变数包装在一起。这样的语言中,选择复合型别的基本原则是:如果包含水量的所有值是同一型别的,否则就使用结构。
现在的PHP有了物件型别(object type),它除了有更特殊的属性外,也有类似纪录或结构型别的特性。然而在介绍物件之前,PHP也并不真正需要结构型别,因为PHP的阵列并没有限制只能使用一种型别的值。如果从有结构型别的语言中把程式码尊字典转到PHP中,有种可能性就是利用可结合的阵列,并使用字串索引,分别对应原来的栏位名称。
其它阵列特性
其实本章只会粗浅介绍阵列,另外,阵列还可以是多维的,可以用许多不同方法指定,并且还有许多