Time of Update: 2018-12-07
simpleTest UnitTest 一直聽說有這些東西可惜重來沒時間研究(借口)。 今天得閑 研究了一下,算是給和我一樣第一次用的朋友一點啟示吧 直接上碼: <?phprequire_once('simpletest/autorun.php');class test { public function testfun($a,$b){ return $a+$b; }}// 從UnitTestCase類繼class myFirstUnitTest
Time of Update: 2018-12-07
<?php/*** PHP log 類 */class Config{ public static function getConfig (){ return array( 'LOG_FILE'=>'test.txt', 'LOG_LEVEL'=>75 //INFO ); }}class Log{ private $LogFile; private $logLevel; const
Time of Update: 2018-12-07
先看看官方文檔的解釋__set() is run when writing data to inaccessible properties.__get() is utilized for reading data from inaccessible properties.究竟用中文怎麼翻譯呢? inaccessible :n. 難達到;難接近;無法理解。有代碼有真相:<?phperror_reporting(E_ALL);class stu{private $a;private $b
Time of Update: 2018-12-07
1.echo和print的區別 PHP中echo和print的功能基本相同(輸出),但是兩者之間還是有細微差別的。echo輸出後沒有傳回值,但print有傳回值,當其執行失敗時返回flase。因此可以作為一個普通函數來使用,例如執行下面的代碼後變數$r的值將為1。 $r = print "Hello World"; 這意味著print可用在一些複雜的運算式中,而echo則不行。但是,因為echo語句不要求返回任何數值,所已在代碼中echo語句的運行效率要略微快於print語句。
Time of Update: 2018-12-07
沒法清空檔案夾內容 只能清空指定連結緩衝<?phpfunction clearVarnish($ip,$url,$host=null){ $errstr = ''; $errno = ''; $varnist_arr = isset($host) ? $host : C('VARNISH_LIST'); foreach ($varnist_arr as $v){ $fp = fsockopen ($ip, 2000, $errno,
Time of Update: 2018-12-07
<?php/** +---------------------------------------------------------- * 分類樹 +---------------------------------------------------------- */function list_to_tree($list, $pk='id',$pid = 'pid',$child = '_child',$root=0){ // 建立Tree $tree = array(
Time of Update: 2018-12-07
<?php/** * @author:xiaojiang * PHP 實現var_export();功能 */ $arr = array("1","2","3"); $arr1 = array('a'=>NULL,'b'=>array('1'=>3)); var_export($arr); //var_export($arr1); function varExport($arr){ $ret = "array( ";
Time of Update: 2018-12-07
唉 通宵上項目發現一個圖片檢測方法在本地很快 上到伺服器上檢測卡死。<?php $img_exists = get_headers($pic,1); if(!empty($img_exists) && $img_exists[0] =='HTTP/1.1 200 OK' && $img_exists['Content-Length']!=18771){ $model_show .=
Time of Update: 2018-12-07
今天朋友群裡朋友問了下 按位與或的問題。。 PHP 工作有1年了 可能對這塊不太熟悉吧 在這裡給新手朋友介紹下這部分 按位於主要是對位元操作。 <?php$a = 1;$b = 2;$c = $a^b;echo $c // 3?> 這裡不是單純的相加關係 十進位 1換算成二進位 00000001 十進位 2換算成二進位 00000010 按位^ 00000011 //
Time of Update: 2018-12-07
PHPRegex模式修正符PHPRegex /i, /is, /s, /isU等 都是些什麼東西呢?1、Regex運算順序 ( ) 圓括弧因為是記憶體處理所以最高* ? + { } 重複匹配內容其次^ $ \b 邊界處理第三| 條件處理第四最後按照運算順序計算匹配2、Regex模式修正符i 正則內容在匹配時候不區分大小寫(預設是區分的)m 在匹配首內容或者尾內容時候採用多行識別匹配S 將轉義斷行符號取消是為單行匹配如. 匹配的時候x 忽略正則中的空白A 強制從頭開始匹配D
Time of Update: 2018-12-07
function compare($ph1,$ph2){ $ret = ''; $_f1Arr = explode("/",$ph1); $_f2Arr = explode("/",$ph2); $f1 = array_pop($_f1Arr); $f2 = array_pop($_f2Arr); for($i=0;$i<count($_f1Arr);$i++){ if($_f1Arr[$i] !== $_f2Arr[$i])
Time of Update: 2018-12-07
$ret = '';$arrs = array(array(1,'test1'), array(2,'test2'), array(3,'test3'), array(4,'test4'), array(5,'test5'), array(6,'test6'), array(7,'test7') );foreach($arrs
Time of Update: 2018-12-07
在PHP中數組常被當作堆棧(後進先出:LIFO)與隊列(先進先出:FIFO)結構來使用。PHP提供了一組函數可以用於push與pop(堆棧)還有shift與unshift(隊列)來運算元組元素。堆棧與列隊在實踐中應用非常廣泛。我們可以先看下堆棧: <?php $arr = array(); array_push($arr,'aaa'); array_push($arr,'bbb'); $arr.pop(); print_r($arr);?>
Time of Update: 2018-12-07
思維導圖 介紹 承接上文的PHP 雜談《重構-改善既有代碼的設計》之 重新組織你的函數繼續重構方面的內容。 這章主要針對資料的重構。 1、爭論的聲音——直接存取Field還是通過函數(Accessor)訪問Field 2.修改Array為Object:當你看到一個Array很像一個資料結構,你可以使用Replace Array with
Time of Update: 2018-12-07
介紹 PHP是一門非常令人驚奇的語言。它足夠強大(最大的部落格(wordpress)的核心語言),它足夠廣泛(運行在最大社交網站facebook上),它足夠簡單(作為初學者首選入門語言)。在低成本的機器上運行良好。而且php語言有很多非常不錯的伺服器套件(如WAMP和MAMP),很方便的安裝在你的機器上。PHP有非常豐富的庫資源,便於開發人員很容易的處理一些業務。由於我們在項目中與日期接觸最多,所以今天就從日期函數入手學習。 舉一個簡單的date例子 我將使用echo命令把內容輸出到我們的
Time of Update: 2018-12-07
<?php/* * @author : xiaojiang * @time : 2013-04-25 *///定義縮圖片尺寸$picSize = array( '100_100'=> 1, '200_100'=> 1 );$imagePath = "../image/";function parseUrl($url){ preg_match("/(?P<name>[\w\d]+)_w(?
Time of Update: 2018-12-07
介紹 今天發現php5.1.*和php5.2.*在資料庫先行編譯代碼執行的時候出現差異。 先行編譯優點1.使用預留位置,避免逐字輸入資料到SQL中。自動處理引號和反斜線等字元的轉義——增加安全性。2.預先“準備”一條語句,然後在每次執行時綁定不同值達到重用的目的。——常用於以後被多次執行的語句。3.可讀性強。 代碼資料庫連接代碼都一樣. $protol = 'mysql:host=localhost;dbname=test';$username = 'monty';$passwd = '0818
Time of Update: 2018-12-07
[PHP]engine = Onshort_open_tag = Onasp_tags = Onprecision = 14y2k_compliance = Onoutput_buffering = 4096zlib.output_compression = Offimplicit_flush = Offunserialize_callback_func =serialize_precision = 100allow_call_time_pass_reference =
Time of Update: 2018-12-07
思維導圖 索引:Ø Move Method(搬移函數)Ø Move Field (搬移範圍)Ø Extract Class (提煉類)Ø Inline Class (將類內聯化,就是把當前的類合并到其他類中)Ø Hide Delegate (隱藏委託關係)Ø Remove Middle Man ( 移除中間人)Ø Introduce Foreign Method (引入外加函數)Ø Introduce Local Extension (引入本地擴充) 介紹 承接上文PHP
Time of Update: 2018-12-07
命名規範 Θ 類檔案都以.class.php為尾碼,使用駝峰法命名,並且首字母大寫,例如 Pay.class.php;Θ 類名和目錄_檔案名稱一致。例如:類名Zend_Autoloader的目錄是Zend/Autoloader.class.php;Θ 函數的命名使用小寫字母和底線的方式。例如:get_client_ip;Θ 方法的命名使用駝峰法,首字母小寫或者使用底線"_",例如listComment(),_getResource(),通常底線開頭的方法屬於私人方法;Θ 屬性的命名使用駝峰法,