2009-2010寒假php学习笔记
时间:2010-03-05 来源:sunjiangang-ok
第1页
1、 PHP 基础
1、 在 web 页面中嵌入 php 代码(4 种不同的界定形式)
a. <?php ?>
b. <? ?>(不常用)
c. <script language=”php”> </script>
d. <% %> (从 php6 开始这种 ASP 风格被删了)
2、 添加注释
// # /* */
3、向浏览器输出数据
a. int print(argument)
eg. print(“<p>I love php</p>”);
print “<p>I love php</p>”;
print “<p>I love
php</p>”;
b. void echo(string arg1,[string arg2, ...])
c. Boolean printf(string format [,mixed args])
与 c 语言里的用法是一样的,可以动态输出文本。
d. string sprintf(string format [,mixed arguments])
这个函数将输出指派到字符串,而不是浏览器。
3、 php 支持的数据类型
a. 标量数据类型。
整型、布尔型(true, false, 0, 非 0)、浮点型、字符串、
b. 符合数据类型
数组、对象、
4、 与类型有关的函数
a.获取类型 string gettype(mixed var)
b.转换类型 Boolean settype(mixed var, string type)
c.类型标识函数 is_array() is_bool() is_float()
等
is_integer()
即 boolean is_name(mixed var)
5、变量作用域
a.局部变量
b.函数参数
c.全局变量 GLOBAL 进行声明(使用要非常谨慎)
d.静态变量 STATIC 进行声明(对于递归函数是非常有用的)
6、php 超级全局变量
7、作用 get 和 post 获取传递的变量
8、获取存储在 cookie 中的信息
9、作用 post 获取关于上传文件的信息($_FILES[][]是一个二维数组)
$_FILES[‘file’][‘name’]上传文件的文件名
$_FILES[‘file’][‘type’]上传的 mime 类型,这个变量是否赋值取决于浏览器
$_FILES[‘file’][‘size’]上传文件的大小
$_FILES[‘file’][‘tmp_name’]上传之后,将此文件移动到最终位置之前赋予的临
时名
第2页
$_FILES[‘file’][‘error’]上传状态码,它有五个值
10、heredoc 语法
<?php
echo <<<EXCERPT
<p>I love someone;</p>
EXCERPT;
?>
EXCERPT 可以改变,但是必须是相同的,最后一个标识符前面不能有任何字符。
11、控制结构
If else elseif switch
12、循环语句
While do...while for
Foreach 这个循环擅长循环处理数组,从数组中提取每个“键/值”对,直到获得所有项,或
满足某些内部条件为止。它有两种语法形式。
a. 从数组中获取每个值,每次迭代都将指针后移
foreach(array_expr as $value) {
statement;
}
Eg.
b.处理包含键和键值的数组
foreach(array_expr as $key => $value) {
statement;
}
Eg.
第3页
13、goto,break,continue 语句
14、文件包含语句
a. include()
include (‘file’);或 include “file”;
确保文件只包含一次
b.
include_once (‘file’);
请求文件
c.
require(‘filename’)
require 和 include 的区别
确保文件只请求一次
d.
require_once(‘filename’)
2、 php 函数
1、 调用函数
2、 创建函数
Function functionName(patameters) {
Function_body;
}
可以为输入参数指定默认参数值
Function calcSalesTax($price, $tax=0.0675) {
$total = $price + ($price * $tax);
第4页
Echo “Total cost:$total”;
}
calcSalesTax(42.00);
如果在没有提供其它值时,可以作用默认值。
3、 从函数返回值
return;
返回多个值
3、 数组
1、 php 中的数组可以是不同类型的数据集合。
Eg. $states = array(0 =>“banana”, 1 =>”49”, 2 => “true”);
2、 创建包含数组的数组
Eg.
第5页
3、 创建数组
a. 使用 array()创建数组
4、使用 list()提取数组
List()在一次操作中从一个数组内提取多个值,同时为多个变量赋值。
4、 用预定义的值范围填充数组。
Array range(int low, int high[, int step])
Eg.
$die = range(0, 6)
//Same as specifying $die = array(0, 1, 2, 3, 4, 5, 6)
$even = range(0, 8, 2)
//Same as specifying $even = array(0, 2, 4, 6, 8)
第6页
$letters = range(“A”, “F”)
//Same as specifying $letters = array(“A”, “B”, “C”, “D”, “E”,
“F”)
5、 测试数组
boolean is_array(mixed variable)
6、在数组头添加元素
Int array_unshift(array array, mixed variable [, mixed variable...])
所有已有的数值键都会相应的发生修改,但是关联键不受影响。
$states = array(“Ohio”, “New York”);
Array_unshift($states, “California”, “Texas”);
//Same as
//$states = array(“Ohio”, “New York”, “California”, “Texas”);
6、 在数组尾添加元素
Int array_push(array array, mixed variable [, mixed variable..])
$states = array(“Ohio”, “New York”);
Array_unshift($states, “California”, “Texas”);
//Same as
//$states = array(“California”, “Texas”, “Ohio”, “New York”);
7、 从数组头删除值
Mixed array_shift(array array)
$states = array(“Ohio”, “New York”, “California”, “Texas”);
$state = array_shift($states);
//Same as
//$states = array(“New York”, “California”, “Texas”);
//$state = “Ohio”;
8、 从数组尾删除值
Mixed array_pop(array array)
$states = array(“Ohio”, “New York”, “California”, “Texas”);
$state = array_pop($states);
//Same as
//$states = array(“Ohio”, “New York”, “California”);
//$state = “Texas”;
9、 定位数组元素
a. 搜索特定值
Boolean in_array(mixed array, array haystack [, boolean strict])
第7页
Eg.
$state = “Ohio”;
$states = array(“Ohio”, “New York”, “California”, “Texas”);
If(in_array($states, $state)) {
Echo “state in the array of states!”;
}
//第三个参数可选,在搜索时强制考虑类型
b. 搜索关联数组键
Boolean array_key_exists(mixed key, array array)
Eg.
c. 搜索关联数组值
mixed array_search(mixed needle, array array, [, boolean strict])
返回相应的键值
Eg.
获取数组键
10、
Array array_keys(array array [, mixed search_value])
Eg.
第8页
获取数组值
11、
Array array_values(array array)
Eg.
12、遍历数组
a.获取当前数组键 mixed key(array array)
eg.
b.获取当前数组值 mixed current(array array)
eg.
第9页
获取当前数组键和值
12、
Array each(array array)
返回的数组包含四个键
0 和 key 包含键名,1 和 value 包含相应的数据
移动数组指针
13、
a. 将指针移动到下一个数组位置
Mixed next(array array)
返回下一个位置的数组值,否则返回 false
b. Mixed prev(array array)
将指针移动到前一个数组位置
c. 将指针移动到第一个数组位置
mixed reset(array array)
d. 将指针移动到最后一个数组位置
Mixed end(array array)
向函数传递数组值
14、
Boolean array_walk(array &array, callback function, [, mixed userdata])
确定数组的大小和唯一性
15、
a.确定数组的大小 integet count(array array, [, int mode])
b.统计数组元素出现的频度
array array_count_values(array array)
返回一个包含关联键和值的数组,其中的键为值,值为出现的频度。
c.确定唯一的数组元素
array array_unique(array array)
数组排序
16、
a.逆置数组元素顺序
Array array_reverse(array array, [, boolean preserve_keys])
//可选参数为 true 时,则保持键映射,否则对应原来位置上相应的键
b.转换数组的键和值
array array_flip(array array)
第 10 页
//将键和值进行交换
c.数组排序
void sort(array array, [, int flags])
d.保持键/值对的条件下对数组进行排序
void assort(array array, [, integet sort_flags])
e. 以逆序对数组进行排序
Void rsort(array array, [, integer sort_flags])
f. 保持键值对的条件下以逆序对数组排序
Void arsort(array array, [, integet sort_flags])
g. 数组自然排序
Void natsort(array array)
h. 按键值对数组排序
Integer ksort(array array, [, int sort_flags])
按键值对数组进行逆序排序
i.
Integer krsort(array array, [, int sort_flags])
j. 根据用户自定义规则排序
Void usort(array array, callback function_name)
合并,拆分,接合和分解数组
17、
a. 合并数组
Array array_merge(array array1, array array2, ...)
b. 递归追加数组
Array array_combine(array keys, array values)
Eg.
Array array_merge_recursive(array array1, array array2, ...)
Eg.
c. 连接两个数组 Array array_merge(arrary array1, array array2, ...)
d. 拆分数组 array array_slice(array array, int offset, [, int length])
Eg.
第 11 页
e.接合数组 array array_splice(array array, int offset[, int length [,
array replacement]])
eg.
e. 求 数 组 中 的 交 集 array array_intersect(array array1, array array2, [,
arrayN...])
Eg.
f. 求 关 联 数 组 的 交 集 array array_intersect_assoc(array array1, array
array2[, arrayN...])
Eg.
第 12 页
g.求数组的差集 array_diff(array array1, array array2[, arrayN...])
eg.
与 array_intersect()正好相反
h.求关联数组的差集 array array_diff_assoc(array array1, array array2[,
arrayN...])
eg.
其它有用的数组函数
18、
a. 返回一组随机的键 mixed array_rand(array array1[, int num_entries])
Eg.
第 13 页
b.随机洗牌数组元素 void shuffle(array input_array)
eg.
c.对数组中的值求和 mixed array_sum(array array)
eg.
d.分解为多维数组 array array_chunk(array array, int size[, boolean
preserve_keys])
eg.
第 14 页
数组函数小结
19、
Array()
List()
Range()
is_array()
Array_unshift()
Array_push()
Array_shift()
Array_pop()
in_array()
Array_key_exists()
Array_search()
Array_keys()
Array_values()
Key()
Current()
Each()
Next()
Prev()
Reset()
End()
Array_walk()
第 15 页
Count()
Array_count_values()
Array_unique()
Array_reverse()
Array_flip()
Sort()
Asort()
Rsort()
Arsort()
Natsort()
Ksort()
Krsort()
Usort()
Array_merge()
Array_combine()
Array_merge_recursive()
Array_merge()
Array_slice()
Array_splice()
Array_intersect()
Array_intersect_assoc()
Array_diff()
Array_intersect()
Array_rand()
Shuffle()
Array_sum()
Array_chunk()
4、 字符串和正则表达式
1. 正则表达式的语法
a. 中括号 eg:[0-9]匹配 0-9 的十进制数字
b. 量词
Eg.
第 16 页
c. 预定义字符范围。
2、php 正则表达式函数
a.以区分大小写的方式搜索 int ereg(string pattern, string string[,
array regs])
b.不区分大小写的方式进行搜索 int eregi(string pattern, string string[,
array regs])
c.以区分大小写的方式替换文本
string ereg_replace(string pattern, string replacement, string
string)
d. 以不区分大小写的方式替换文本
String eregi_replace(string pattern, string replacement, string
string)
e. 以区分大小写的方式将字符串划分为不同元素。
Array split(string pattern, string string[, int limit])
f. 以不区分大小写的方式将字符串划分为不同元素
Array spliti(string pattern, string string[, int limit])
g. 调节只支持区分大小写的正则表达式
String sql_regcase(string string)
1、 PHP 基础
1、 在 web 页面中嵌入 php 代码(4 种不同的界定形式)
a. <?php ?>
b. <? ?>(不常用)
c. <script language=”php”> </script>
d. <% %> (从 php6 开始这种 ASP 风格被删了)
2、 添加注释
// # /* */
3、向浏览器输出数据
a. int print(argument)
eg. print(“<p>I love php</p>”);
print “<p>I love php</p>”;
print “<p>I love
php</p>”;
b. void echo(string arg1,[string arg2, ...])
c. Boolean printf(string format [,mixed args])
与 c 语言里的用法是一样的,可以动态输出文本。
d. string sprintf(string format [,mixed arguments])
这个函数将输出指派到字符串,而不是浏览器。
3、 php 支持的数据类型
a. 标量数据类型。
整型、布尔型(true, false, 0, 非 0)、浮点型、字符串、
b. 符合数据类型
数组、对象、
4、 与类型有关的函数
a.获取类型 string gettype(mixed var)
b.转换类型 Boolean settype(mixed var, string type)
c.类型标识函数 is_array() is_bool() is_float()
等
is_integer()
即 boolean is_name(mixed var)
5、变量作用域
a.局部变量
b.函数参数
c.全局变量 GLOBAL 进行声明(使用要非常谨慎)
d.静态变量 STATIC 进行声明(对于递归函数是非常有用的)
6、php 超级全局变量
7、作用 get 和 post 获取传递的变量
8、获取存储在 cookie 中的信息
9、作用 post 获取关于上传文件的信息($_FILES[][]是一个二维数组)
$_FILES[‘file’][‘name’]上传文件的文件名
$_FILES[‘file’][‘type’]上传的 mime 类型,这个变量是否赋值取决于浏览器
$_FILES[‘file’][‘size’]上传文件的大小
$_FILES[‘file’][‘tmp_name’]上传之后,将此文件移动到最终位置之前赋予的临
时名
第2页
$_FILES[‘file’][‘error’]上传状态码,它有五个值
10、heredoc 语法
<?php
echo <<<EXCERPT
<p>I love someone;</p>
EXCERPT;
?>
EXCERPT 可以改变,但是必须是相同的,最后一个标识符前面不能有任何字符。
11、控制结构
If else elseif switch
12、循环语句
While do...while for
Foreach 这个循环擅长循环处理数组,从数组中提取每个“键/值”对,直到获得所有项,或
满足某些内部条件为止。它有两种语法形式。
a. 从数组中获取每个值,每次迭代都将指针后移
foreach(array_expr as $value) {
statement;
}
Eg.
b.处理包含键和键值的数组
foreach(array_expr as $key => $value) {
statement;
}
Eg.
第3页
13、goto,break,continue 语句
14、文件包含语句
a. include()
include (‘file’);或 include “file”;
确保文件只包含一次
b.
include_once (‘file’);
请求文件
c.
require(‘filename’)
require 和 include 的区别
确保文件只请求一次
d.
require_once(‘filename’)
2、 php 函数
1、 调用函数
2、 创建函数
Function functionName(patameters) {
Function_body;
}
可以为输入参数指定默认参数值
Function calcSalesTax($price, $tax=0.0675) {
$total = $price + ($price * $tax);
第4页
Echo “Total cost:$total”;
}
calcSalesTax(42.00);
如果在没有提供其它值时,可以作用默认值。
3、 从函数返回值
return;
返回多个值
3、 数组
1、 php 中的数组可以是不同类型的数据集合。
Eg. $states = array(0 =>“banana”, 1 =>”49”, 2 => “true”);
2、 创建包含数组的数组
Eg.
第5页
3、 创建数组
a. 使用 array()创建数组
4、使用 list()提取数组
List()在一次操作中从一个数组内提取多个值,同时为多个变量赋值。
4、 用预定义的值范围填充数组。
Array range(int low, int high[, int step])
Eg.
$die = range(0, 6)
//Same as specifying $die = array(0, 1, 2, 3, 4, 5, 6)
$even = range(0, 8, 2)
//Same as specifying $even = array(0, 2, 4, 6, 8)
第6页
$letters = range(“A”, “F”)
//Same as specifying $letters = array(“A”, “B”, “C”, “D”, “E”,
“F”)
5、 测试数组
boolean is_array(mixed variable)
6、在数组头添加元素
Int array_unshift(array array, mixed variable [, mixed variable...])
所有已有的数值键都会相应的发生修改,但是关联键不受影响。
$states = array(“Ohio”, “New York”);
Array_unshift($states, “California”, “Texas”);
//Same as
//$states = array(“Ohio”, “New York”, “California”, “Texas”);
6、 在数组尾添加元素
Int array_push(array array, mixed variable [, mixed variable..])
$states = array(“Ohio”, “New York”);
Array_unshift($states, “California”, “Texas”);
//Same as
//$states = array(“California”, “Texas”, “Ohio”, “New York”);
7、 从数组头删除值
Mixed array_shift(array array)
$states = array(“Ohio”, “New York”, “California”, “Texas”);
$state = array_shift($states);
//Same as
//$states = array(“New York”, “California”, “Texas”);
//$state = “Ohio”;
8、 从数组尾删除值
Mixed array_pop(array array)
$states = array(“Ohio”, “New York”, “California”, “Texas”);
$state = array_pop($states);
//Same as
//$states = array(“Ohio”, “New York”, “California”);
//$state = “Texas”;
9、 定位数组元素
a. 搜索特定值
Boolean in_array(mixed array, array haystack [, boolean strict])
第7页
Eg.
$state = “Ohio”;
$states = array(“Ohio”, “New York”, “California”, “Texas”);
If(in_array($states, $state)) {
Echo “state in the array of states!”;
}
//第三个参数可选,在搜索时强制考虑类型
b. 搜索关联数组键
Boolean array_key_exists(mixed key, array array)
Eg.
c. 搜索关联数组值
mixed array_search(mixed needle, array array, [, boolean strict])
返回相应的键值
Eg.
获取数组键
10、
Array array_keys(array array [, mixed search_value])
Eg.
第8页
获取数组值
11、
Array array_values(array array)
Eg.
12、遍历数组
a.获取当前数组键 mixed key(array array)
eg.
b.获取当前数组值 mixed current(array array)
eg.
第9页
获取当前数组键和值
12、
Array each(array array)
返回的数组包含四个键
0 和 key 包含键名,1 和 value 包含相应的数据
移动数组指针
13、
a. 将指针移动到下一个数组位置
Mixed next(array array)
返回下一个位置的数组值,否则返回 false
b. Mixed prev(array array)
将指针移动到前一个数组位置
c. 将指针移动到第一个数组位置
mixed reset(array array)
d. 将指针移动到最后一个数组位置
Mixed end(array array)
向函数传递数组值
14、
Boolean array_walk(array &array, callback function, [, mixed userdata])
确定数组的大小和唯一性
15、
a.确定数组的大小 integet count(array array, [, int mode])
b.统计数组元素出现的频度
array array_count_values(array array)
返回一个包含关联键和值的数组,其中的键为值,值为出现的频度。
c.确定唯一的数组元素
array array_unique(array array)
数组排序
16、
a.逆置数组元素顺序
Array array_reverse(array array, [, boolean preserve_keys])
//可选参数为 true 时,则保持键映射,否则对应原来位置上相应的键
b.转换数组的键和值
array array_flip(array array)
第 10 页
//将键和值进行交换
c.数组排序
void sort(array array, [, int flags])
d.保持键/值对的条件下对数组进行排序
void assort(array array, [, integet sort_flags])
e. 以逆序对数组进行排序
Void rsort(array array, [, integer sort_flags])
f. 保持键值对的条件下以逆序对数组排序
Void arsort(array array, [, integet sort_flags])
g. 数组自然排序
Void natsort(array array)
h. 按键值对数组排序
Integer ksort(array array, [, int sort_flags])
按键值对数组进行逆序排序
i.
Integer krsort(array array, [, int sort_flags])
j. 根据用户自定义规则排序
Void usort(array array, callback function_name)
合并,拆分,接合和分解数组
17、
a. 合并数组
Array array_merge(array array1, array array2, ...)
b. 递归追加数组
Array array_combine(array keys, array values)
Eg.
Array array_merge_recursive(array array1, array array2, ...)
Eg.
c. 连接两个数组 Array array_merge(arrary array1, array array2, ...)
d. 拆分数组 array array_slice(array array, int offset, [, int length])
Eg.
第 11 页
e.接合数组 array array_splice(array array, int offset[, int length [,
array replacement]])
eg.
e. 求 数 组 中 的 交 集 array array_intersect(array array1, array array2, [,
arrayN...])
Eg.
f. 求 关 联 数 组 的 交 集 array array_intersect_assoc(array array1, array
array2[, arrayN...])
Eg.
第 12 页
g.求数组的差集 array_diff(array array1, array array2[, arrayN...])
eg.
与 array_intersect()正好相反
h.求关联数组的差集 array array_diff_assoc(array array1, array array2[,
arrayN...])
eg.
其它有用的数组函数
18、
a. 返回一组随机的键 mixed array_rand(array array1[, int num_entries])
Eg.
第 13 页
b.随机洗牌数组元素 void shuffle(array input_array)
eg.
c.对数组中的值求和 mixed array_sum(array array)
eg.
d.分解为多维数组 array array_chunk(array array, int size[, boolean
preserve_keys])
eg.
第 14 页
数组函数小结
19、
Array()
List()
Range()
is_array()
Array_unshift()
Array_push()
Array_shift()
Array_pop()
in_array()
Array_key_exists()
Array_search()
Array_keys()
Array_values()
Key()
Current()
Each()
Next()
Prev()
Reset()
End()
Array_walk()
第 15 页
Count()
Array_count_values()
Array_unique()
Array_reverse()
Array_flip()
Sort()
Asort()
Rsort()
Arsort()
Natsort()
Ksort()
Krsort()
Usort()
Array_merge()
Array_combine()
Array_merge_recursive()
Array_merge()
Array_slice()
Array_splice()
Array_intersect()
Array_intersect_assoc()
Array_diff()
Array_intersect()
Array_rand()
Shuffle()
Array_sum()
Array_chunk()
4、 字符串和正则表达式
1. 正则表达式的语法
a. 中括号 eg:[0-9]匹配 0-9 的十进制数字
b. 量词
Eg.
第 16 页
c. 预定义字符范围。
2、php 正则表达式函数
a.以区分大小写的方式搜索 int ereg(string pattern, string string[,
array regs])
b.不区分大小写的方式进行搜索 int eregi(string pattern, string string[,
array regs])
c.以区分大小写的方式替换文本
string ereg_replace(string pattern, string replacement, string
string)
d. 以不区分大小写的方式替换文本
String eregi_replace(string pattern, string replacement, string
string)
e. 以区分大小写的方式将字符串划分为不同元素。
Array split(string pattern, string string[, int limit])
f. 以不区分大小写的方式将字符串划分为不同元素
Array spliti(string pattern, string string[, int limit])
g. 调节只支持区分大小写的正则表达式
String sql_regcase(string string)
相关阅读 更多 +