《PHP程序设计》学习笔记(1)
时间:2006-05-27 来源:heroufo
第一章 PHP简介
1、PHP能做什么
服务器端脚本:创建WEB应用
命令行脚本:用命令行脚本执行系统管理任务
客户端GUI应用:利用PHP编写跨平台的GUI应用程序
PHP可以运行在大部分操作系统,PHP可以输出HTML、PDF、图像文件等。
PHP支持所有主流数据库,PHP提供代码库,如PEAR等
2、PHP的安装与配置参见这篇文章
《Win2K下安裝配置PHP开发环境》
3、PHP代码放在 标签中
phpinfo() 函数显示当前PHP配置信息
$PHP_SELF 返回当前页面的URL地址
PHP通过 $_POST 和 $_GET 数组变量访问表单值
第二章 语言基础
1、语法结构
大小写:内置语句和用户自定义类名和函数名不区分大小写,变量除外.
语句和分号:分号分割语句,大括号标记代码块,其他类似C语言.
空白符:在语句中无关紧要,增加代码可读性.
注释:PHP支持C/C++/Shell的注释风格.
直接量:直接出现在程序中的数据值.
变量名:变量名以$开头并区分大小写.
类名:不区分大小写 stdClass为保留类名.
常量:设定后不能改变 声明常量 define()
define('PUBLISHER',"O'Relly & Programming PHP");
echo PUBLISHER;
关键字:保留关键字,区分大小写
2、数据类型
PHP提供8中数据类型
4种标量类型:整型,浮点型,字符串型,布尔型
2种符合类型:数组,对象
2种特殊类型:资源型,NULL
整型:用函数 is_int() 测试一个值是否为整型.
if (is_int($x)) { // $x 是一个整数 }
浮点型:在用==比较两个浮点型数值时一般的方法是比较到几位小数.
if (int($a*1000)==int($b*1000)) { // 3位小数相等的数字 }
用函数 is_float() 或 is_real() 测试一个值是否为浮点数.
if (is_float($x)) { // $x 是一个浮点数 }
字符串:为变量赋值的字符串用 "" 括起来,单引号则不是变量.
"" 中字符串支持多种转义字符,而''中字符串只支持 \\ 和 \'
用==测试两个字符串是否相等.
if ($a==$b) { // 变量$a等于$b }
用函数 is_string() 测试一个值是否为字符型.
if (is_string($x)) { // $x 是一个字符型 }
布尔型:决定条件代码的结果 if($x) { …… }
在PHP中下列为 false
false、0、空字符串、没有值或函数对象、零元素、null
用函数 is_bool() 测试一个值是否为布尔型.
if (is_bool($x)) { // $x 是一个布尔型 }
数组:用函数 array() 创建数组
$x=array('A','B','C'); // 默认下标为 0 1 2 …… N
$y=array('ONE'=>'A','TWO'=>'B','THREE'=>'C');
// 指定下标内容
用 foreach() 遍历数组
foreach($x as $name) { echo "This $name\n"; }
foreach($y as $invention => $inventor) {
echo "$invention is this $inventor"; }
用函数 sort() 对数组排序 sort($x);
用函数 is_array() 测试一个值是否为数组.
if (is_array($x)) { // $x 是一个数组 }
对象:PHP支持OOP编程,类(Class)是OOP设计的单元
类是包含属性(变量)和方法(函数)的结构定义,类用Class关键字定义.
可以用new关键字创建类的实例,用->调用类的方法和属性.
Class {
var $name=''; //类属性
function name(……) { // 类方法 }
}
new $ed=person; //创建类实例
$ed->name('test'); //为类中属性赋值
$ed->name; //调用类方法
用函数 is_object() 测试一个值是否为对象.
if (is_object($x)) { // $x 是一个对象 }
资源:实际为整数,优点为当不再使用时将作为垃圾被收集起来. ?
用函数 is_resource() 测试一个值是否为资源.
if (is_resource($x)) { // $x 是一个资源 }
NULL:仅有一个值不区分大小写,NULL表示一个没有值的变量(Python中的None)
用函数 is_null() 测试一个值是否为NULL.
if (is_null($x)) { // $x 是一个NULL }
3、变量
PHP中以$开头,没有显示语法声明变量,无值变量等同于NULL
变量的变量:可以引用一个变量的值,这个变量的变量名存放在另一个变量中.
$foo='bar';
$$foo='baz'; // 变量$bar的值为 'baz'
变量的引用:就是如何创建变量的别名
$black=& $while; // 是$black成为变量$while的一个别名
重置原变量同时更改别名的值
$while='snow';
$black=& $while;
print($black); // 输出 snow
$while='know';
print($black); // 输出 know
变量也可以引用函数的值
function ret_ref() {
$var='PHP';
return $var;
}
$v=& ret_ref(); // 引用函数返回值
echo $v;
变量作用域:PHP包括4种变量作用域 局部、全局、静态、函数
局部变量:在函数中的变量,不能更改函数体外的同名变量.
全局变量:函数外声明的变量,默认在函数内不可以访问全局变量.
可以在函数内部用global声明该变量.
function update_counter() {
global $counter; // 声明全局变量
$counter++;
}
$counter=10;
update_counter();
echo($counter); //输出在函数内修改后的变量 11
在函数内更新变量也可用$GLOBALS数组,而不直接访问变量
function update_counter() {
$GLOBALS[counter]++;
}
静态变量:静态值保持不变,仅在函数内部,用static声明静态变量
function update_counter() {
static $counter=0; // 声明静态变量
$counter++;
echo($counter);
}
$counter=10;
update_counter(); //输出静态变量 1
update_counter(); // 2
echo($counter); //输出全局变量 10
函数参数:参数只在函数内部起作用
4、垃圾收集
PHP用引用计算和写时复制管理内存
写时复制确保在变量之间复制值时不浪费内存
引用计算确保在引用不再需要时将内存返给OS
在PHP中变量的内存空间是唯一的但在符号表中有两个值指向同一内存地址.
用函数 isset() 查看变量是否已经设置包括空字符串
$s1=isset($name); // $s1为false
$name='find';
$s2=isset($name); // $s2为true
用函数 unset() 删除一个变量值
$name='fred';
unset($name); // $name为NULL
5、表达式和操作符
1、PHP能做什么
服务器端脚本:创建WEB应用
命令行脚本:用命令行脚本执行系统管理任务
客户端GUI应用:利用PHP编写跨平台的GUI应用程序
PHP可以运行在大部分操作系统,PHP可以输出HTML、PDF、图像文件等。
PHP支持所有主流数据库,PHP提供代码库,如PEAR等
2、PHP的安装与配置参见这篇文章
《Win2K下安裝配置PHP开发环境》
3、PHP代码放在 标签中
phpinfo() 函数显示当前PHP配置信息
$PHP_SELF 返回当前页面的URL地址
PHP通过 $_POST 和 $_GET 数组变量访问表单值
第二章 语言基础
1、语法结构
大小写:内置语句和用户自定义类名和函数名不区分大小写,变量除外.
语句和分号:分号分割语句,大括号标记代码块,其他类似C语言.
空白符:在语句中无关紧要,增加代码可读性.
注释:PHP支持C/C++/Shell的注释风格.
直接量:直接出现在程序中的数据值.
变量名:变量名以$开头并区分大小写.
类名:不区分大小写 stdClass为保留类名.
常量:设定后不能改变 声明常量 define()
define('PUBLISHER',"O'Relly & Programming PHP");
echo PUBLISHER;
关键字:保留关键字,区分大小写
2、数据类型
PHP提供8中数据类型
4种标量类型:整型,浮点型,字符串型,布尔型
2种符合类型:数组,对象
2种特殊类型:资源型,NULL
整型:用函数 is_int() 测试一个值是否为整型.
if (is_int($x)) { // $x 是一个整数 }
浮点型:在用==比较两个浮点型数值时一般的方法是比较到几位小数.
if (int($a*1000)==int($b*1000)) { // 3位小数相等的数字 }
用函数 is_float() 或 is_real() 测试一个值是否为浮点数.
if (is_float($x)) { // $x 是一个浮点数 }
字符串:为变量赋值的字符串用 "" 括起来,单引号则不是变量.
"" 中字符串支持多种转义字符,而''中字符串只支持 \\ 和 \'
用==测试两个字符串是否相等.
if ($a==$b) { // 变量$a等于$b }
用函数 is_string() 测试一个值是否为字符型.
if (is_string($x)) { // $x 是一个字符型 }
布尔型:决定条件代码的结果 if($x) { …… }
在PHP中下列为 false
false、0、空字符串、没有值或函数对象、零元素、null
用函数 is_bool() 测试一个值是否为布尔型.
if (is_bool($x)) { // $x 是一个布尔型 }
数组:用函数 array() 创建数组
$x=array('A','B','C'); // 默认下标为 0 1 2 …… N
$y=array('ONE'=>'A','TWO'=>'B','THREE'=>'C');
// 指定下标内容
用 foreach() 遍历数组
foreach($x as $name) { echo "This $name\n"; }
foreach($y as $invention => $inventor) {
echo "$invention is this $inventor"; }
用函数 sort() 对数组排序 sort($x);
用函数 is_array() 测试一个值是否为数组.
if (is_array($x)) { // $x 是一个数组 }
对象:PHP支持OOP编程,类(Class)是OOP设计的单元
类是包含属性(变量)和方法(函数)的结构定义,类用Class关键字定义.
可以用new关键字创建类的实例,用->调用类的方法和属性.
Class {
var $name=''; //类属性
function name(……) { // 类方法 }
}
new $ed=person; //创建类实例
$ed->name('test'); //为类中属性赋值
$ed->name; //调用类方法
用函数 is_object() 测试一个值是否为对象.
if (is_object($x)) { // $x 是一个对象 }
资源:实际为整数,优点为当不再使用时将作为垃圾被收集起来. ?
用函数 is_resource() 测试一个值是否为资源.
if (is_resource($x)) { // $x 是一个资源 }
NULL:仅有一个值不区分大小写,NULL表示一个没有值的变量(Python中的None)
用函数 is_null() 测试一个值是否为NULL.
if (is_null($x)) { // $x 是一个NULL }
3、变量
PHP中以$开头,没有显示语法声明变量,无值变量等同于NULL
变量的变量:可以引用一个变量的值,这个变量的变量名存放在另一个变量中.
$foo='bar';
$$foo='baz'; // 变量$bar的值为 'baz'
变量的引用:就是如何创建变量的别名
$black=& $while; // 是$black成为变量$while的一个别名
重置原变量同时更改别名的值
$while='snow';
$black=& $while;
print($black); // 输出 snow
$while='know';
print($black); // 输出 know
变量也可以引用函数的值
function ret_ref() {
$var='PHP';
return $var;
}
$v=& ret_ref(); // 引用函数返回值
echo $v;
变量作用域:PHP包括4种变量作用域 局部、全局、静态、函数
局部变量:在函数中的变量,不能更改函数体外的同名变量.
全局变量:函数外声明的变量,默认在函数内不可以访问全局变量.
可以在函数内部用global声明该变量.
function update_counter() {
global $counter; // 声明全局变量
$counter++;
}
$counter=10;
update_counter();
echo($counter); //输出在函数内修改后的变量 11
在函数内更新变量也可用$GLOBALS数组,而不直接访问变量
function update_counter() {
$GLOBALS[counter]++;
}
静态变量:静态值保持不变,仅在函数内部,用static声明静态变量
function update_counter() {
static $counter=0; // 声明静态变量
$counter++;
echo($counter);
}
$counter=10;
update_counter(); //输出静态变量 1
update_counter(); // 2
echo($counter); //输出全局变量 10
函数参数:参数只在函数内部起作用
4、垃圾收集
PHP用引用计算和写时复制管理内存
写时复制确保在变量之间复制值时不浪费内存
引用计算确保在引用不再需要时将内存返给OS
在PHP中变量的内存空间是唯一的但在符号表中有两个值指向同一内存地址.
用函数 isset() 查看变量是否已经设置包括空字符串
$s1=isset($name); // $s1为false
$name='find';
$s2=isset($name); // $s2为true
用函数 unset() 删除一个变量值
$name='fred';
unset($name); // $name为NULL
5、表达式和操作符
相关阅读 更多 +