PHP單例模式資料庫連線類與頁面靜態化實現方法

2022-05-01 09:21:14 字數 3618 閱讀 2940

資料庫test中資料表account內容

單例模式的資料庫連線類

db.php12

3456

78910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

3536

3738

3940

4142

<?php

//單例模式的資料庫連線

classdb

//例項化

publicstaticfunctiongetinstance()

self::$_instance=newself();

returnself::$_instance;

}

//資料庫連線

publicfunctionconnect()catch(pdoexception$e)

}

returnself::$_connectsource;

}

}

?>

php實現頁面靜態化的例子

static.php12

3456

78910

1112

1314

1516

1718

1920

2122

2324

25<?php

//1.使用剛才寫的資料庫連線類連線資料庫

//2.把獲取到的資料填充到模板檔案中

//3.把頁面轉化為靜態檔案

//如果我們本地有這個靜態檔案並且這個檔案生成的時間小於5分鐘那麼就去訪問這個靜態檔案,filemtime()用來獲取檔案的最後修改時間

if(is_file('./static.shtml') && (time() -filemtime('./static.shtml')) < 300)else

?>

動態展示模板檔案static_show.php12

3456

7<?php

foreach($resas$row)

?>

當我們訪問static.php的時候,因為沒有static.shtml,所以會先執行else的操作,展示在static_show.php並生成static.shtml檔案

如果這時候我把資料庫修改了,zjp的money改為800,然後再訪問static.php會展示什麼樣的內容呢,沒錯,zjp的錢包還是600,為什麼呢,因為它執行了if中的內容,直接顯示了static.shtml,我們可以看一下static.shtml是什麼樣的:

如果5分鐘過後再訪問staitc.php呢,會顯示什麼呢,沒錯!zjp的錢包就變成800了,並且static.shtml的內容會更新為zjp的錢包是800。

測試ob_get_clean()和ob_get_contents()

測試方法很簡單:12

3456

78910

1112

1314

1516

<?php

$test='hello world!';

//開啟緩衝區

ob_start();

//測試ob_get_contents()

echo$test;

echoob_get_contents();

//輸出結果:hello world!hello world!

//測試ob_get_clean()

echo$test;

echoob_get_clean();

//輸出結果:hello world!

echo$test;

ob_get_clean();

//輸出結果:

?>

這樣就可以很清楚的看出來了,當我們使用了ob_get_clean()的時候,輸出語句並不會輸出任何值,因為ob_get_clean()會獲取緩衝區中的內容並將緩衝區清空。所以當我們echo test的時候並沒有得到test的時候並沒有得到test的值,echo ob_get_clean()的時候卻能夠獲取到值。而當我們使用ob_get_contents()的時候緩衝區中的內容並沒有被清空。

實際上,ob_get_clean()函式相當於執行了,ob_get_contents()ob_end_clean()

php單例模式連線資料庫封裝類

單例模式有三大原則 建構函式不能為public 有乙個儲存例項的靜態成員變數 擁有訪問這個例項的公共靜態方法 基於單例模式的php資料庫連線類 class db static public function getinstance return self instance public functi...

php單例模式連線資料庫封裝類

單例模式有三大原則 建構函式不能為public 有乙個儲存例項的靜態成員變數 擁有訪問這個例項的公共靜態方法 基於單例模式的php資料庫連線類 php view plain copy class db static public function getinstance return self in...

PHP單例模式連線資料庫

總體來說設計模式分為三大類 建立型模式 結構型模式 行為型模式,今天要說的時屬於建立型模式裡的單例模式。單例模式通常用於在特定的情況下可以節省資源的消耗,使用較為普遍,例如同一頁面對資料庫的多次操作,不需要去new多次從而節省了資源。而對於php,關鍵在於其中的 instanceof 它用來檢測乙個...