php面向对象编程入门

本文介绍了PHP的面向对象编程,从发展历程到类与对象的概念,包括成员属性的声明、对象创建、属性访问以及类命名规范。通过内存图示解析,深入探讨了对象在内存中的存储,特别讨论了函数参数传递时的对象与基本数据类型的差异。
摘要由CSDN通过智能技术生成

1.发展与解释:

 

汇编:面向机器

C语言:面向过程

java:面向对象

php:支持面向对象

 

其实类也是一种数据类型

 

a.类是抽象的,代表一类事物

b.对象是具体的,是类的一个具体实例

c.类是对象的模板,对象是类的一个个体实例


2.简单入门案例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
class  Cat
{
public
$name ;
public
$age ;
public
$color ;
}
$c =90;
$cat1 = new
Cat();
$cat1 ->name= "小白" ;
$cat1 ->age=10;
$cat1 ->color= "red" ;
$cat2 = $cat1
  
?>

内存图如下:

wKiom1c8Z9iykK8RAAAzOWpI1iQ198.png


案例2

1
2
3
4
5
6
7
<?php
$a =9;
$b = $a ;
$b = $b +8;
Echo
$a . " " . $b ;
?>

内存图如下:

wKioL1c8aSHyywNVAAAVtUW8sxo431.png

案例3

1
2
3
4
5
6
7
<?php
$a =9;
$b =& $a ;
$b = $b +8;
Echo
$a . " " . $b ;
?>

内存图如下:

wKiom1c8aJzwpUSjAAAU-Qt24LY108.png

案例4:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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;
?>

wKioL1c8agzRrmsMAAAwciKnVnU476.png


a.函数接收对象时候,究竟接收的是,还是地址

b.如果是基本数据类型?在默认情况下,传递的是值,如果希望传入地址:

Function test(&$变量名)

{

 

}

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

Function test(&$array)

{

 

}

 

 

问题?

 

 

1
2
3
4
5
6
7
8
9
10
11
12
<?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 );
?>

…………………………………………………..区别

1
2
3
4
5
6
7
8
9
10
<?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 );
?>

错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值