靜態成員
靜態的成員(靜態屬性和靜態方法)
靜態變數關鍵字:static 可寫在許可權修飾符前也 可以寫在許可權修飾符後
單例模式的特點:<?php
class book }
//第一次例項化物件
$b1 = new book();
$b1->showme();
//第二次例項化物件
$b2 = new book();
$b2->showme();
//第三次例項化物件
$b3 = new book();
$b2->showme();
注意1:靜態屬性的作用是:保留原始資料值 並往下疊加
如果不使用static 屬性 則每一次答案都是 你是第一位訪客。
注意2:在類中訪問靜態屬性時可以用self::$屬性名 (注意加上$符號 表示的是成員屬性名 如果不加 表示常量) 形式(self)代表當前類, 也可以寫 類名::屬性名 (但建議一般寫第一種方式 因為 self代表的就是本類所以再修改類名的時候 self代替了該類名),另外 在類外訪問靜態方法時就只能用 類名::靜態屬性方法名 在類外不可以呼叫self (代表當前類)$this(代表當前方法)也同理。
注意3:靜態方法必須使用靜態成員。
靜態成員和類常量的區別:類常量一次http中請求過程中 值永遠不變
靜態變數不是 靜態變數沒有許可權
乙個類只能建立乙個物件
雖然單例模式執行出來有時候是兩個值 但是 它代表的是乙個物件單號 我們可以有兩種測試方法1: 可以使用var_dump(db1
,db1,
db1,
db2)的方法看結果是不是乙個物件單號(#1)
方法2:可以使用=== if條件判斷方法 測試
單位模式的**需要實現哪些功能
簡稱:三私一公、
1,私有的靜態的儲存物件的屬性
2,私有構造方法
3,私有的轉殖方法
4公共的靜態物件方法
轉殖:<?php
//單例
class uni
//防止轉殖物件
private function __clone()
static public function getinstance()
return self::$instance;
}//普通方法
public function method()
} $ob1 = uni::getinstance(); //獲取uni的物件
$ob1->method();
echo "";
$ob2 = uni::getinstance();
$ob2->method();
echo "
"; 測試單例方法一:
if ($ob1 === $ob2) else
測試單例方法二:
var_dump($boj1,$obj2);
關鍵字:clone;
注意:轉殖出來的物件 還是兩個。
物件賦值:<?php
class student
$s1 = new student();
$s1->name = '張三';
//轉殖物件
$s2 = clone $s1;
$s2->name = '李四';
echo $s1->name;
echo '
';echo $s2->name;
物件之間的賦值,實際就是引用賦值,兩個物件之間賦值後,就是乙個物件了。所以當乙個物件的內容發生變化後,另乙個物件的內容也會發生變化。
普通變數之間的賦值,如果也想使用引用賦值,必須使用&,$name2 =& $name1;
那麼,nam
e1
和name1和
name1和
name2也變成了同乙個變數,它們之間相互影響。
命名空間:關鍵字namespace
類的自動載入建立乙個檔案:student.php
<?php
namespace model; //定義命名間
//類student在model命名空間中
class student
}建立乙個測試檔案:test.php
<?php
use model\student; //引入 model命名空間的student 類
require_once 'student.php';
$stu = new student();
$stu->say();
何時自動載入?
當試圖使用未定義類時。
使用new建立不存在的類時。
繼承乙個不存在的類時。
使用靜態方法呼叫乙個不存在的類時,
當實現不存在的介面時。
第三課 PHP 語法
php 指令碼在伺服器上執行,然後向瀏覽器傳送回純 html 結果。php 指令碼可放置於文件中的任何位置。php 指令碼以 結尾 此處是 php php 檔案的預設副檔名是 php php 檔案通常包含 html 標籤以及一些 php 指令碼 下面的例子是乙個簡單的 php 檔案,其中包含了使用內...
python第三課答案 python第三課
字串操作 s alexwusir s1 s.capitalize 首字母大寫 print s1 全大寫,全小寫 s2 s.upper s21 s.lower print s2,s21 大小寫翻轉 s3 s.swapcase print s3 每個隔開 特殊字元或數字 的單詞首字母大寫 s alex ...
python第三課答案 python第三課筆記
以下哪個變數的命名不正確?為什麼?a mm 520 b mm520 c 520 mm d 520 mm 答 c不正確,不能數字開頭 在不上機的情況下,以下 你能猜到螢幕會列印什麼內容嗎?myteacher 小甲魚 yourteacher myteacher yourteacher 黑夜 print ...