用 replace來執行新增、更新資料庫的動作,關鍵在於更新的欄位中若有不可重複的欄位,那麼mysql會刪掉舊記錄,然後再放入新的記錄。在(應該)5.0版本之後的mysql,新增時因為沒有主鍵欄位的值,此時可以用0來代替,mysql便會替我們新增一筆記錄,而若是其他已存在的主鍵號碼,則會執行上述更新的動作。不存在的主鍵資料就可以放得進去。
重新認識「倫理」
現在的老板或領導人真的不好做,因為你的部屬幾乎認為他和你是平等的,而且部屬也不會因為你是主管就多尊重你一份,遇有不符合自己觀念的事情還得跟你爭執一番。多數人做一份工作常是因為取得工作報酬,或者貢獻自己的才能,特別是覺得自己是貢獻才能者,通常會對於自己有一份優越感,甚至可能覺得「公司沒有我不行」,這樣一來就很容易忽略職場倫理。 閱讀全文〈重新認識「倫理」〉
工具列的新寫法
原本的工具列寫法是
$arr[]=”test”;
$arr[]=”tryit”;
foreach($arr as $stat){
$tmp++;
$coma=($tmp>1)?” | “:””;
$tool.=$coma.”<a href=”>{$stat}</a>”;
}
後來發現利用implode函數更乾脆。
<?php
$arr[]=”test”;
$arr[]=”tryit”;
foreach($arr as $stat){
$tmp++;
$arr2[$tmp]=”<a href=”>{$stat}</a>”;
}
$tool=implode(” | “,$arr2);
?>
其實還可以直接寫成函數
$arr[]=”test”;
$arr[]=”tryit”;
echo maketool($arr);
function maketool($arr){
foreach($arr as $stat){
$tmp++;
$arr2[$tmp]=”<a href=”>{$stat}</a>”;
}
return implode(” | “,$arr2);
}
今天安裝了Zend Optimizer
今天安裝了Zend Optimizer,它是用來最佳化PHP的程式碼,讓PHP執行起來更有效率。自己並沒有實際做測試來比較執行結果,不過「感覺」上,安裝前和安裝前執行PHP真的有差別。所以這篇文章就記錄一下我安裝的過程: 閱讀全文〈今天安裝了Zend Optimizer〉
函數array_walk
語法:array_walk(陣列變數,自訂函數名稱[,額外的資料])
利用自訂函數去處理傳入陣列的每一個元素。 閱讀全文〈函數array_walk〉
函數trim
語法:trim(字串參數[,清單字串])
trim()會將傳入的字串參數去除左右邊的空白字元(註1),並且將結果以字串型態傳回。所以如果傳入的參數是非字串資料,例如陣列或物件,則得出的結果會以字串形式呈現,而不再具有原本的資料特性(註2)。 閱讀全文〈函數trim〉
函數傳回參照(return by reference)
如果要讓函數以傳址方式傳回值,則定義函數時函數名稱前要加&,而且呼叫函數時名稱前也要加&。
例:
定義:
Function &myfoo(){
func body
}
呼叫:
$myvar=&myfoo();
使用傳址方式(pass by reference)傳遞參數給函數的注意事項
使用傳址方式傳遞參數給函數的注意事項
- 必須使用變數
- 必須使用new敘述
- 如果是函數的傳回值,則函數必須以傳址的方式傳回值。
函數Array_diff
語法:array_diff(陣列1,陣列2[,陣列3…])
array_diff($arr1,$arr2),比較$arr1的元素中哪些是$arr2所沒有的,並且傳回這些沒有的元素,如果$arr1、$arr2對調參數位置產生的結果可能不一樣。不必考慮索引順序。
函數debug_backtrace
語法:debug_backtrace()
功用:傳回引入檔案(物件)層次的陣列。
必須將此函數寫在被引入的檔案(物件)裡才會有內容,若是直接執行寫有此函數的檔案(物件),則傳回空陣列。因此,通常此函數是用來判斷檔案被叫用時是否為被引入的狀態。傳回的陣列裡每一個元素代表引入檔案過程裡的每一個檔案,而且也是以陣列的形式存在,可能的文字索引 有:function、line、file、class、object、type、args。如果使用object當作陣列索引,傳回的是可以實際操作的物件。
請見:http://www.php.net/manual/en/function.debug-backtrace.php