1.发展与解释:
汇编:面向机器
C语言:面向过程
java:面向对象
php:支持面向对象
其实类也是一种数据类型
a.类是抽象的,代表一类事物
b.对象是具体的,是类的一个具体实例
c.类是对象的模板,对象是类的一个个体实例
2.简单入门案例:
<?php class Cat { public $name; public $age; public $color; } $cat1=new Cat(); //对类进行实例化/创建一个对象/实例化对象 三者说法同种意思 $cat1->name="小白"; $cat1->age=10; $cat1->color="red"; $FindCat="小白"; if($cat1->name==$FindCat) { ECHO $FindCat."存在"; } ?>
3.用法
a.成员属性的说明:
成员属性是从某个事物中提取出来,可以是基本数据类型(整数,小数,字符,布尔),也可以是复合数据类型(数组,对象)
Class 类名{
成员属性;
}
b.创建对象:
$对象名=new 类名();
or
$对象名=new 类名;
c.访问对象属性
$对象名->属性名;
d.class命名规范
如果一个文件专门用于定义类的,没有类的操作,其命名规范:
类名.class.php
Class 类名
{
}
4.从内存详细解释
内存图
堆区:对象,一般存较小的的
栈区:基本数据类,一般是较大的
案例1:
<?php class Cat { public $name; public $age; public $color; } $c=90; $cat1=new Cat(); $cat1->name="小白"; $cat1->age=10; $cat1->color="red"; $cat2=$cat1 ?>
内存图如下:
案例2:
<?php $a=9; $b=$a; $b=$b+8; Echo $a." ".$b; ?>
内存图如下:
案例3:
<?php $a=9; $b=&$a; $b=$b+8; Echo $a." ".$b; ?>
内存图如下:
案例4:
<?php Class Person { public $name; Public $age; } $p1=new Person(); $p1->name="小明"; $p1->age=10; Function test1($p) { $p->name="小花"; } Test1($p1); Echo $p1->name; ?>
a.函数接收对象时候,究竟接收的是值,还是地址?
b.如果是基本数据类型?在默认情况下,传递的是值,如果希望传入地址:
Function
test(&$变量名)
{
}
在php中,如果给一个函数传递的是数组,则默认情况下是传值(拷贝了新的数组),如果如果希望传入地址:
Function
test(&$array)
{
}
问题?
<?php $arr=array($a1,$a2); $a1=array(1,2,3); $a2=array(4,5,6,7); foreach ($arr as $k=>$v) { echo "$k=$v"; } var_dump($arr); ?>
…………………………………………………..区别
<?php $a1=array(1,2,3); $a2=array(4,5,6,7); $arr=array($a1,$a2); foreach ($arr as $k=>$v) { echo "$k=$v"; } var_dump($arr); ?>
错误
时间: 2024-11-19 04:36:03