您的位置:首页 > 编程语言 > PHP开发

php面向对象(oop)

2012-12-10 00:32 260 查看
php面向对象(oop)
将同一事物统一管理;
<?php

class cat{

public $name;
public $age;

}
//创建对象
$cat1=new cat;
//给对象赋值
$cat1->name="小明";
$cat1->age=12;

echo $cat1->name;

?>

成员属性必须是public 才能访问;

对象在内存中的存在形式:

当php在内存中运行的时候,会在内存中开辟几个区域
(堆区,栈区,代码区,全局区,常量区);



<?php

class person{

public $name;
public $age;

}
$a=new person();
$a->name="小明";
$a->age=20;
//把a变量(对象),赋给$b;
$b=$a;

echo $a->name."<br>";
echo $b->name."<br>";
?>

加深内存图的认识:
$a=78;
//$b=$a;
$b=&$a;
$b=$b+8;
echo $a."\n".$a;



对象传入函数的时候传入值,还是地址?
(记忆,函数调用的时候会重新开辟一个新栈 当函数调用完 返回后,新栈结束)

class person{

public $name;
public $age;

}
$p1=new person();
$p1->name="韩顺平";
$p1->age=22;

//函数接受对象时候,究竟是传入值,还是地址;

function test1($p){

$p->name="小明";

}
test1($p1);

echo $p1->name;

分析图:



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

$a=90;

传递的是具体的值90;在函数内不能修改$a的值;

在变量前面加&地址符,就可以传入$a的地址;在函数内修改$a的值;
在函数内传入数组 也是默认传入值;如果希望传入地址;则加&$arr;

成员方法:

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

//函数体
//return 返回值
}
class person{

public $name;
public $age;

public function count1(){

$res=0;
for($i=1;$i<=100;$i++){

$res+=$i;

}

return $res;

}
public function count2($n){

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

$res+=$i;

}

return $res;

}

public function speak(){

echo "我是一个好人";

}

}

$p1=new person();
$p1->speak();
echo "<br/>".$p1->count1();
//接受一个数然后计算
echo "<br/>".$p1->count2(100);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: