PHP中文手册 阅读笔记1
echo 'Hello World';//输出文字
$_SERVER:自动全局变量,HTTP请求信息头
strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE');//在 $_SERVER['HTTP_USER_AGENT']变量中寻找 'MSIE',如果没有,则返回 FALSE。
自动全局变量 $_POST,它包含了所有的 POST 数据,即表单数据
如果使用了 GET 方法,那么表单中的信息将被储存到自动全局变量 $_GET 中。
如果并不关心请求数据的来源,也可以用自动全局变量 $_REQUEST,它包含了所有 GET、POST、COOKIE 和 FILE 的数据。
get提交的内容可以在地址栏中看到,而且提交的数目不超过255个字节。
post提交后不可以看到,可以提交更多的数据,如文件图片等等。当method为get时,action属性中url后面的参数是忽视滴。
短标记:<? echo expression ?>
ASP风格标记:<?= expression ?>
短标记和 ASP 风格标记,可以在 php.ini 配置文件中打开或关闭。尽管有些人觉得短标记和 ASP 风格标记很方便,但移植性较差,通常不推荐。
注意:如果将 PHP 嵌入到 XML 或 XHTML 中则需要使用 <?php ?> 以保持符合标准
PHP 需要在每个语句后用分号结束指令。一段 PHP 代码中的结束标记隐含表示了一个分号;在一个 PHP 代码段中的最后一行可以不用分号结束
PHP八种原始数据类型:
boolean
integer
float(double)
string
array
object
resource
NULL
要指定一个布尔值,使用关键字 TRUE 或 FALSE。两个都不区分大小写。
-1 和其它非零值(不论正负)一样,被认为是 TRUE!
如果用八进制符号,数字前必须加上 0(零),用十六进制符号数字前必须加上 0x。
如果向八进制数传递了一个非法数字(即 8 或 9,最大应该只有7),则后面其余数字会被忽略。
如果给定的一个数超出了 integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。
PHP 中没有整除的运算符。1/2 产生出 float 0.5。可以总是舍弃小数部分,或者使用 round() 函数。
当从浮点数转换成整数时,数字将被取整(丢弃小数位)。
决不要将未知的分数强制转换为 integer,这样有时会导致意外的结果。
floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999...。
所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者 gmp 函数。
指定一个简单字符串的最简单的方法是用单引号(字符 ')括起来。
要表示一个单引号,需要用反斜线(\)转义,和很多其它语言一样。如果在单引号之前或字符串结尾需要出现一个反斜线,需要用两个反斜线表示。注意如果试图转义任何其它字符,反斜线本身也会被显示出来!所以通常不需要转义反斜线本身。
当用双引号或者定界符指定字符串时,其中的变量会被解析。
如果遇到美元符号($),解析器会尽可能多地取得后面的字符以组成一个合法的变量名。如果想明示指定名字的结束,用花括号把变量名括起来。
访问和修改字符串中的字符
字符串中的字符可以通过在字符串之后用花括号指定所要字符从零开始的偏移量来访问和修改。
$str = 'This is a test.';
$first = $str{0};
字符串可以用“.”(点)运算符连接。注意这里不能用“+”(加)运算符
布尔值 TRUE 将被转换为字符串 "1",而值 FALSE 将被表示为 ""(即空字符串)。
整数或浮点数数值在转换成字符串时,字符串由表示这些数值的数字字符组成(浮点数还包含有指数部分)。
数组将被转换成字符串 "Array"。
对象将被转换成字符串 "Object"。
资源类型总是以 "Resource id #1" 的格式被转换成字符串,其中 1 是 PHP 在运行时给资源指定的唯一标识。
NULL 将被转换成空字符串。
字符串转换为数值
如果包括“.”,“e”或“E”其中任何一个字符的话,字符串被当作 float 来求值。否则就被当作整数。
该值由字符串最前面的部分决定。如果字符串以合法的数字数据开始,就用该数字作为其值,否则其值为 0(零)。合法数字数据由可选的正负号开始,后面跟着一个或多个数字(可选地包括十进制分数),后面跟着可选的指数。指数是一个“e”或者“E”后面跟着一个或多个数字。
可以用 array() 语言结构来新建一个 array。它接受一定数量用逗号分隔的 key => value 参数对。
$arr = array("foo" => "bar", 12 => true);
key 可以是 integer 或者 string。如果键名是一个 integer 的标准表达方法,则被解释为整数(例如 "8" 将被解释为 8,而 "08" 将被解释为 "08")。key 中的浮点数被取整为 integer。
如今如果给一个当前最大键名是负值的数组添加一个新值,则新生成的的索引将为零(0)。以前新生成的索引为当前最大索引加一,和正值的索引相同。
如果要删除一个数组(键名/值对),要对它用 unset()。
unset($arr);
如果给出方括号但没有指定键名,则取当前最大整数索引值,新的键名将是该值 + 1。如果当前还没有整数索引,则键名将为 0。如果指定的键名已经有值了,该值将被覆盖。
对于任何的类型:整型、浮点、字符串、布尔和资源,如果将一个值转换为数组,将得到一个仅有一个元素的数组(其下标为 0),该元素即为此标量的值。
如果将一个对象转换成一个数组,所得到的数组的元素为该对象的属性(成员变量),其键名为成员变量名。
如果将一个 NULL 值转换成数组,将得到一个空数组。
需要注意数组的赋值总是会涉及到值的拷贝。需要在复制数组时用引用符号(&)。
$arr3 = &$arr1;