php控制器面向对象编程,php面向对象编程

u成员属性的说明

1.成员属性是从某个事物提取出的,它可以是 基本数据类型(整数、小数、字符、布尔),也可以是复合数据类型(数组、对象)

class Cat{

public $name;

public $age;

//创建对象

$cat1=new Cat;

$cat1=new Cat();

?>

2.怎样访问一个成员属性(其它成员属性是public)

基本语法是

$对象名->属性名;

☞ 如果一个文件,专门用于定义类,则命名规范应当这样

类名.class.php

//定义一个人类

class Person{

public $name;

public $age;

}

$a=new Person();

$a->name="小明";

$a->age=20;

//把a变量(对象),赋给$b

$b=$a;

echo $a->name."
";

echo $b->name."
";

891a40cbc7629f6f64e6b84629c13697.png

再次说明:

$a=78;

//$b=$a;

$b=&$a;

$b=$b+8;

echo $a."||".$b;

u如果给一个函数传递一个对象,实际上是传递的一个地址.

//看下面的一段代码:

class Person{

public $name;

public $age;

}

$p1=new Person();

$p1->name="韩顺平";

$p1->age=33;

//函数接收对象时候,究竟是传入值,还是地址(!!!!)

function test1($p){

$p->name="小明";

}

test1($p1);

echo $p1->name;

分析图

e15b724f11ce5cc48bc4d40fe8049a14.png

u如果给函数传递的是基本数据类型(整数、小数、布尔、字符) ,究竟传递的是什么?

结论:在默认的情况下是传递的值,如果你希望传入地址

function test(&$变量....){

}

在php中如果,给一个函数传递的是数组,则默认情况下是传值(拷贝了新的数组),如果希望传入地址,则应当,&$数组名

学生问题?

$a1=array(1,3,900);$a2=array(56,90,100);

$arr=array($a1,$a2);

foreach($arr as $k=>$v){              echo “$k=$v”;}

?>

u成员方法的讲解

函数和成员方法关系:

当我们把一个函数写到某个类中,则该函数可以称成员方法:

我们有这样一个需求;希望人可以说话,做算术题.......,这样就需要使用到成员方法:

①添加speak成员方法,输出我是一个好人

②添加jisuan成员方法,可以计算从1+..+1000的结果

③修改jisuan成员方法,该方法可以接收一个数n,计算1+..+n的结果

④添加add成员方法,可以计算两个数的和

成员方法的基本语法:

访问修饰符号function函数名(参数列表){

//函数体

//return语句;

}

class Person{

public $name;

public $age;

public function speak(){

echo "我是一个好人!";

}

public function count1(){

$res=0;

for($i=1;$i<=1000;$i++){

$res+=$i;

}

//return 究竟到什么地方去?谁调用,就返回给谁

return $res;

}

//修改jisuan 成员方法,该方法可以接收一个数n,计算 1+..+n 的结果               public function count2($n){

$res=0;

for($i=0;$i<=$n;$i++){

$res+=$i;

}

return $res;

}

//添加add 成员方法,可以计算两个数的和

public function add($num1,$num2){

return $num1+$num2;

}

}

//如何使用函数

//1.创建一个人

$p1=new Person();

//通过对象去访问,调用成员方法.

//这里强调,调用成员方法和调用普通函数的机制,仍然不变

$p1->speak();

//让这个人做算术题

$res=$p1->count1();

echo '计算结果是='.$res;

//让这个人可以接收一个数,然后计算

echo "计算结果是=".$p1->count2(100);

echo "计算结果是=".$p1->count2(100);

echo "计算结果是=".$p1->count2(100);

echo "23+89=".$p1->add(23,89);

?>

u成员方法的细节

我们在实际开发,其实通常是这样来使用类

Person.class.php

class Person{

//成员属性

public $name;

public $age;

//成员方法

public function speak(){

echo "我是一个好人!";

}

public function count1(){

$res=0;

for($i=1;$i<=1000;$i++){

$res+=$i;

}

//return究竟到什么地方去?谁调用,就返回给谁

return $res;

}

//修改jisuan成员方法,该方法可以接收一个数n,计算1+..+n的结果

public function count2($n){

$res=0;

for($i=0;$i<=$n;$i++){

$res+=$i;

}

return $res;

}

//添加add成员方法,可以计算两个数的和

public function add($num1,$num2){

return $num1+$num2;

}

//添加一个新的方法,可以判断三个数最大的数

public function findMax($arr){

//这里仍然可以写算法

//从$arr数组中,找到最大的数.

//1.假设数组的第一个数就是最大的数

$maxVal=$arr[0];

//2.最大数的下标是

$maxIndex=0;

//开始循环的比较

for($i=1;$i

//这个条件说明,maxVal不是最大

if($maxVal

//调整

$maxVal=$arr[$i];

$maxIndex=$i;

}

}

return $maxVal;

}

}

?>

Exercise01.php

//引入类文件

require_once ‘Person.class.php’;

//创建对象

$p1=new Person();

//调用$p1的各个方法

$p1->speack();

$p1->count1();..

?>

案例:

编写一个函数(以面向对象的方式开发),从网页输入一个整数打印出对应的金子塔:

当我们学习完成员方法后,我们的类定义就完善一步了:

ef353acb33df96596dc4c70fddb01a0e.png

1.设计计算机类,要求如下:

属性:品牌,颜色,cpu型号,内存容量,硬盘大小,价格,工作状态

方法:打开,关闭,休眠(表示)

创建一个计算机对象,调用打开,关闭方法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值