第四单元 数组、函数、对象
PHP4内容:(第13、14、17章)
n 1.数组
n 2.函数
n 3.对象
n 4.万年历
重点:数组函数
难点:类与对象
第13章 数组
1. 定义数组
一维数组:$数组名[指针]
二维数组:$数组名[指针1] [指针2] 类推
2.数组设置
一维: $数组名[指针]=值;
$数组名=array(第0元素,第1元素,…)
例:$A[0]=10; $A[1]=20; $A[2]=20;
$A=array(“Sunday”,”Monday:,”Tuesday”,”Wednesday”…)
二维: P161 例13-3
p162 例13-4 星期数组
$数组名=array(
0=>array(
0=>第0行0列元素
1=>第0行1列元素 ),
1=>array(
0=>第0行0列元素
1=>第0行1列元素 ),
……);
3. 数组操作
• int count( )返回数组元素个数 P163 例13-5
• mixed array_sum(array 数组名称) 计算数组和
一维数组$P: sum=array_sum($p)
二维数组$S: p165 例13-6 制作表格
P166 例13-7 合并表格
4.排序与搜索 P167
Sort( ),arsort( ),asort( ), ksory( ),natsort( ),
•p168 例13-8 排序
•P169 例13-9 搜索
第14章 自定义函数
14-1. 建立函数
Function 自定义名称($arg1,$arg2,…$argn){
函数语句;
return 函数返回值 ;
}
•p171 例14-1 计算两项商品的金额
•P172 例14-2 return返回
•P174 例14-3 return返回超过一个使用list函数
14-2.参数的传递
1)传值调用(call by value)
2)传地址调用
14-3默认参数
function func_name(arg1,arg2=n) { 函数内容 }
14-4.可变长参数
function sum($op1,$op2){
return $op1+$op2;
}
•p182 例14-8
•P183 例14-9
第17章 面向对象
17-1 类 (class)
类是一种虚拟的数据类型,对象是一个实体,
实体的特性可以定义为对象的数据成员, 处理数据成员的操作则称为成员函数。
类的声明:
class 类名称 {
var 变量1;
var 变量2;
function 成员函数一
{…..}
function 成员函数二
{…..}
}
• p201 例17-1
class car {
var $color ;
function set_color($c){
$this->color=$c ;
}
function get_color(){
return $this->color ;
}
}
?>
$MyCar=new car ;
$MyCar->set_color("宝蓝色") ;
echo "车子的颜色是" . $MyCar->get_color() ;
?>
p202 例17-2 自己阅读代码
•17-2 构造函数与析构函数
构造函数(Constructor) :特殊的成员函数,new产生新对象时便执行内容,可以预处理
注意构造函数与类的名称相同。
p203 例17-3
class car {
var $color ;
function __construct() {
$this->color="红色" ;
}
function set_color($c){
$this->color=$c ;
}
function get_color(){
return $this->color ;
}
}
?>
$ACar=new car ;
$ACar->set_color("宝蓝色") ;
echo "A车颜色是".$ACar->get_color()."
" ;
$BCar=new car ;
echo "B车颜色是".$BCar->get_color() ; ;
?>
析构函数:删除对象时执行的操作
P206 例17-4
class test {
private $val;
function __construct() {
$this->val=10;
echo "对象产生
";
}
public function get_val(){
return $this->val;
}
function __destruct(){
echo "
删除对象
";
echo "
";
}
}
$a=new test;
echo $a->get_val();
?>
17-3 继承
class 子类 extends 父类
例:class Bus extends Car
class parent { var $blood_type;
}
class child extends parent {
function get_blood_type(){
return $this->blood_type;
}
}
P207 例17-5examples\ch17\17-5.php
class car {
var $color ;
function car() {
$this->color="红色" ;
}
function set_color($c){
$this->color=$c ;
}
function get_color(){
return $this->color ;
}
}
class RV extends car {
function show_drive($n){
echo $n." 轮驱动" ;
}
}
?>
$JohnCar=new car ;
$JohnCar->set_color("宝蓝色") ;
echo "John车子的颜色是 ".$JohnCar->get_color()."
" ;
$MaryCar=new RV ;
echo "Mary车子是 " ;
$MaryCar->show_drive(4) ;
echo ",颜色是".$MaryCar->get_color() ;
?>
17- 4 abstract 与interface
1.抽象声明abstract用于类的继承,可以防止该类产生实体。而声明成抽象成员函数可以由继承的类去编写内容。
abstract class car {
private $color;
abstract function get_color();
abstract function show_color();
}
p211 范例17-7
abstract class car {
protected $color ;
abstract function get_color();
abstract function set_color($n);
}
class mycar extends car {
private $weight=1500;
function get_color(){
return $this->color;
}
function set_color($newcolor){
$this->color=$newcolor ;
}
function get_weight(){
return $this->weight;
}
}
$a=new mycar ;
$a->set_color("红色") ;
echo "车身是".$a->get_color()."
";
echo "车重是".$a->get_weight()."公斤
";
?>
2.interface
class 类名称 implements 第1个interface,第2个interface,....
p212 范例17-8
interface width {
public function get_width();
public function set_width($w);
}
interface area {
public function get_area();
public function get_around();
}
class squareA implements width {
private $w;
public function get_width(){
return $this->w;
}
public function set_width($newW){
$this->w=$newW ;
}
}
class squareB implements width, area {
private $w;
public function get_width(){
return $this->w;
}
public function set_width($newW){
$this->w=$newW ;
}
public function get_area(){
return $this->w * $this->w;
}
public function get_around(){
return 4*$this->w;
}
}
$a=new squareA;
$a->set_width(10);
echo "方形 A 的边长是 ". $a->get_width()."
";
$b=new squareB;
$b->set_width(30);
echo "方形 B 的边长是 ". $b->get_width()."
";
echo "方形 B 的面积是 ". $b->get_area()."
";
echo "方形 B 的周长是 ". $b->get_around()."
";
?>
17-5 异常处理
由tyr()和catch{}组成
p214范例17-9
$filename="abc.php";
if (!file_exists($filename)){
throw new Exception("发
生异
常错误: 文件不存
在!!");
}
} catch (Exception $e) {
echo $e->getMessage();
exit();
}
echo "程序继续执行";
?>