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."
";
再次說明:
$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;
分析圖
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();..
?>
?
案例:
編寫一個函數(以面向對象的方式開發),從網頁輸入一個整數打印出對應的金子塔:
當我們學習完成員方法后,我們的類定義就完善一步了:
1.設計計算機類,要求如下:
屬性:品牌,顏色,cpu型號,內存容量,硬盤大小,價格,工作狀態
方法:打開,關閉,休眠(表示)
創建一個計算機對象,調用打開,關閉方法.
總結
以上是生活随笔為你收集整理的php控制器面向对象编程,php面向对象编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab中cq是什么,Matlab中
- 下一篇: linux bash java,从Lin