Time of Update: 2017-01-19
1.當將所有執行個體設為null,php會自動清除對象的引用。 2.建構子:__construct() 清除對象時自動執行的方法:__destruct() 也可以設定手動清除對象的方法:destroy或者clean_up 3.對象中的三種變數範圍:public、private和protected。 4.對象中的常量屬性可以使用const關鍵字,然後在對象外部以“對象名::屬性名稱”的格式引用,在對象內部以“self::屬性名稱”的格式引用。 5.在整個對象所有執行個體中通用的屬性,就是靜態屬性,
Time of Update: 2017-01-19
比如當前檔案是放在(d:\www\)下,檔案名稱是test.php。 測試的代碼如下: 複製代碼 代碼如下: <?php echo __FILE__ ; // 取得當前檔案的絕對位址,結果:D:\www\test.php echo dirname(__FILE__); // 取得當前檔案所在的絕對目錄,結果:D:\www\ echo dirname(dirname(__FILE__)); //取得當前檔案的上一層目錄名,結果:D:\ ?> 使用方法提示,
Time of Update: 2017-01-19
要求:在系統中 在建立檔案是可以實現自動編號。比如建立文字檔 預設檔案名稱是:建立 文字文件.txt,如果繼續建立時檔案名稱自動變了:建立 文字文件 (2).txt, 以後就是 3,4,5….請問這種演算法用PHP怎麼實現。 思路,原來想用迴圈來做,後來想想,用計數器遞增吧,簡單高效,這個TME可以是資料庫,可以檔案,可以是設定檔,看你怎麼做了,迴圈只是在維護的時候使用的,如果每建一個新檔案也得迴圈一次,那得累死,緩衝無處不在 複製代碼 代碼如下: <?php
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php ini_set("safe_mode",true); ?> 表 42-2. 安全模式限制函數函數名限制dbmopen()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 UID(所有者)。dbase_open()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的 UID(所有者)。filepro()檢查被操作的檔案或目錄是否與正在執行的指令碼有相同的
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php /** * 適配器模式 * * 將一個類的介面轉換成客戶希望的另外一個介面,使用原本不相容的而不能在一起工作的那些類可以在一起工作 */ // 這個是原有的類型 class OldCache { public function __construct() { echo "OldCache construct<br/>"; } public function store($key,$value) { echo "OldCache
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php /** * 建造者模式 * * 將一個複雜物件的構建與它的表示分離,使用同樣的構建過程可以建立不同的表示 */ class Product { public $_type = null; public $_size = null; public $_color = null; public function setType($type) { echo "set product type<br/>"; $this->_type =
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php /** * Data Access Objects(Data Access Object) 樣本 * * @create_date: 2010-01-04 */ class BaseDAO { var $_db = null; var $_table = null; function BaseDAO($config) { $this->_db = new MysqlDB(); // 這裡的不能進行操作 } /** * 擷取處理 * * @param
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php /** * 裝飾模式 * * 動態給一個對象添加一些額外的職責,就擴充功能而言比產生子類方式更為靈活 */ header("Content-type:text/html;charset=utf-8"); abstract class MessageBoardHandler { public function __construct(){} abstract public function filter($msg); } class
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php /** * 委託模式 樣本 * * @create_date: 2010-01-04 */ class PlayList { var $_songs = array(); var $_object = null; function PlayList($type) { $object = $type."PlayListDelegation"; $this->_object = new $object(); } function
Time of Update: 2017-01-19
模式定義:面板模式(Facade Pattern):外部與一個子系統的通訊必須通過一個統一的外觀對象進行,為子系統中的一組介面提供一個一致的介面,面板模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。面板模式又稱為門面模式,它是一種對象結構型模式。 模式結構: 面板模式的就是讓client用戶端以一種簡單的方式來調用比較複雜的系統,來完成一件事情。 Subsystem: 複製代碼 代碼如下: class car { public function start() { print_r("
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php /** * Factory 方法模式 * * 定義一個用於建立對象的介面,讓子類決定將哪一個類執行個體化,使用一個類的執行個體化延遲到其子類 */ /* class DBFactory { public static function create($type) { swtich($type) { case "Mysql": return new MysqlDB(); break; case "Postgre": return new PostgreDB(
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php /** * 三元組 Triplet * */ class Triplet { private $_data = null; // 初始化三元組 public function init($val1,$val2,$val3) { $this->_data[0] = $val1; $this->_data[1] = $val2; $this->_data[2] = $val3; return true; } // 銷毀三元組 public
Time of Update: 2017-01-19
今天學習CI架構過程中遇到個問題: A PHP Error was encountered Severity: Notice Message: Undefined variable: user 一般在預設的普通PHP檔案中輸出一個未定義聲明的變數是不會報錯誤的,但在codeigniter架構下卻要報錯誤,這對於想整合 添加 和 修改 頁面於一體的”懶人”很不方便,由於是初學者開始還想怎麼在代碼中屏蔽這一錯誤提示呢.甚至用到了@,但聽很多人都說@會大大降低效能….
Time of Update: 2017-01-19
舉例說明: 在Windows環境下:原本在php4.3.0中運行正常的程式,在4.3.1中為何多處報錯,大體提示為:Notice:Undefined varialbe:變數名稱. 例如有如下的代碼: 複製代碼 代碼如下: if (!$tmp_i) { $tmp_i=10; } 在4.3.0中運行正常,在4.3.1中運行會提示Notice:Undefined varialbe:tmp_i 問題下下: 1.問題出在哪裡? 2.應如何修改這段代碼?
Time of Update: 2017-01-19
/path/to/pkphp.com/script.php?ajax 在php指令碼中使用如下方法判斷: 複製代碼 代碼如下: if(isset($_GET['ajax'])) { ...這是一個ajax請求,然後... } else { ...這不是一個ajax請求,然後... } 通過傳遞_GET參數的方法簡單實現了網頁請求的判斷。但是如果需要這樣的功能,這個方法可能就有弊端,功能需求如下: 1.通過ajax請求的網頁與普通請求的網頁內容是不相同的
Time of Update: 2017-01-19
一、如何定義數組:在PHP中建立數組主要有兩種方式,下面就讓我們來看看如何建立一個數組 (1)直接給每個元素賦值的方法建立數組。 格式為:$arrayname[key]=value; 其中arrayname為數組的名字,key為數組的元素的鍵,value為元素的值。鍵可以是0,1,2,3這一類數字,也可以是字串。如下所示: 複製代碼 代碼如下: 1 <?php 2 //用1,2,3的數值作為數組的鍵 3 echo '<p>數組$array1的索引值為:</p>';
Time of Update: 2017-01-19
複製代碼 代碼如下: /* *@自動添加資料函數 *@$table 表名 *@$arr 欄位庫 array("title",array("content",int)) *@ array(欄位,類型) *@ 類型說明 html--允許html unhtml-不允許html int --int類型 float -- float 類型 */ //自動插入資料函數 function autoInsert($table,$arr=array(),$method='post') {
Time of Update: 2017-01-19
我們知道很多在網上下載的論壇或者個人部落格程式都有安裝的頁面,要製作這樣的安裝程式就需要用到sql檔案建立資料庫。 只對phpmyadmin匯出的sql檔案有效 複製代碼 代碼如下: $dbfile="test.sql"; $content=iconv("UTF-8","GB2312",file_get_contents($dbfile)); //擷取建立的資料 //去掉注釋 $content=preg_replace("/--.*\n/iU","",$content); //替換首碼
Time of Update: 2017-01-19
改架構主要用於實現多個程式員之間的協同開發以及mvc開發模式的實現.skymvc採用mvc開發方式,架構本身易擴充。skymvc作為天網計劃的基礎架構,秉承易用、易學、共同開發的優良傳統,我們致力於打造一款優秀的php mvc架構。歡迎大家多多提些建議。 1.建立設定檔skyMVC支援自動建立網站目錄:輸入http://locahost/skymvc/install.php 即可自動建立 檔案目錄。如果建立之後想重新建立,刪除install.lock檔案及可。 推薦自動建立。
Time of Update: 2017-01-19
使用mvc開發模式是為了什嗎?? MVC是一個設計模式,它強制性的使應用程式的輸入、處理和輸出分開。使用MVC應用程式被分成三個核心組件:模型、視圖、控制器。它們各自處理自己的任務。 我們有必要嚴格區分mvc的三層模式模式嗎? m與c的跨界使用更有利於快速開發。 在我使用的架構中 m與c可以跨界使用,並不嚴格區分。有時候很想直接在c裡處理m的事,因為業務的資料處理並不多見,也許只有一次。 這樣在m裡面寫個函數, 再用c調用,變得複雜,這與php快速開發理念相悖。 我們需要的什嗎? 1.視圖分離