php面向對象編程入門

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);
?>

錯誤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章