u 成員屬性的說明php
1. 成員屬性是從某個事物提取出的,它能夠是 基本數據類型(整數、小數、字符、布爾),也能夠是複合數據類型(數組、對象)算法
<?php數組
class Cat{函數
public $name;學習
public $age;ui
} spa
//建立對象設計
$cat1=new Cat;code
$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."<br/>";
echo $b->name."<br/>";
再次說明:
$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中若是,給一個函數傳遞的是數組,則默認狀況下是傳值(拷貝了新的數組),若是但願傳入地址,則應當,&$數組名
學生問題?
<?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 語句;
}
<?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; } }
//如何使用函數
//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
<?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<count($arr);$i++){
//這個條件說明,maxVal不是最大
if($maxVal<$arr[$i]){
//調整
$maxVal=$arr[$i];
$maxIndex=$i;
}
}
return $maxVal;
}
}
?>
Exercise01.php
<?php
//引入類文件
require_once ‘Person.class.php’;
//建立對象
$p1=new Person();
//調用$p1的各個方法
$p1->speack();
$p1->count1();..
?>
案例:
編寫一個函數(以面向對象的方式開發),從網頁輸入一個整數打印出對應的金子塔:
當咱們學習完成員方法後,咱們的類定義就完善一步了:
1.設計計算機類,要求以下:
屬性:品牌,顏色,cpu型號,內存容量,硬盤大小,價格,工做狀態
方法: 打開,關閉,休眠 (表示)
建立一個計算機對象,調用打開,關閉方法.