PHP基础内容数组、函数、对象

LAMP15年前 (2010)发布 liyugang
203 0

第四单元 数组、函数、对象

 
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 "程序继续执行";
?>

 

© 版权声明

相关文章

暂无评论

暂无评论...