樓上幾個的回答都值得借鑒。我也寫幾句哈。
成都創(chuàng)新互聯(lián)主要從事成都做網站、網站設計、外貿營銷網站建設、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務福海,十多年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
1. 寫這段代碼的人水平也不高。實際上?php if( isset($latest_list) !empty($latest_list) ):?這句并沒有起到什么作用。同時! empty()判定和isset()是重復的,沒意義。直接if(! empty($latest_list)就行了。
此外,對于一個foreach循環(huán),它要其$latest_list必須是一個數組,否則會報錯,因此在foreach之前,為了保證其有效性應該使用 if(! empty($latest_list) is_array($latest_list))
2. if($key!=0) 某樓解釋錯誤,這句的意思實際上是跳過數組中的第一行。
針對你的問題,一些額外的判斷是為了防止代碼中意料之外的錯誤,沒有的話并不是不行,但是并不推薦。因為考慮到團隊協(xié)作等,你無法總是保證傳入的參數,或者函數的返回值是可用的,因此需要額外的判斷保證這一點。
你的例子中的$lastest_list應該就是數據庫返回的數據,誰也不能肯定它是不是返回空數組,甚至是一個false。額外的判斷可以讓調試人員更容易的知道到底發(fā)生了什么事情。
幫助到你的話請采納哦。
用戶名(字符型),
我理解的字符型包括??? 數字,字母,下劃線
//php正則判斷比較好
$preg?=?'/^[0-9a-zA-z_]{0,}$/';
if(!preg_match($preg,'中文')){
echo?"輸入信息不是數字字母下劃線";
}else{
echo?"正確";
}
整型方法:
intval();強制轉換為整型,然后判斷是否為空
//php正則判斷
$preg?=?'/^[0-9]{0,}$/';
if(!preg_match($preg,'中文')){
echo?"輸入信息不是數字";
}else{
echo?"正確";
}
模式匹配符:
\:轉義字符? 例如:\b轉義了b
^:正則表達式開始符號
$:正則表達式結束符號
*:匹配前面的字符出現(xiàn)0次或者n次
+:匹配前面的字符出現(xiàn)1次或者n次
?:匹配前面的字符出現(xiàn)0次或者1次
.:匹配除了換行符以外的所有單個字符
|:或者的意思,例如x|y? 匹配x或者y
{n}:匹配前面的n個字符
{n,m}:匹配至少n個最多m個前面字符
[xyz]:匹配中括號里的任意一個字符
[^xyz]:匹配除了中括號里的任意一個字符等價于[0-9]
\w:匹配任意一個數字或字母或下劃線等價于[A-Za-z0-9_]
\d:匹配任意一個0--9之間的數字
模式修正符:
i:忽略大小寫
樓上正解,當用戶做一些無關緊要的訪問時,僅需判斷session或cookie相關變量是否存在以及是否為空即可,如若涉及關鍵、敏感的操作,則就要比對數據庫了。session由于數據放在服務器端,相對比較安全,感覺如果不太重要的話,沒有必要每次頁面訪問都要與數據庫比對,cookie的話就不好說了,在客戶端容易被篡改,但可以用blowfish、xxtea等加密的方法來解決
?php
$arr = array('臺灣','香港','上海','廣東','浙江');
$arg = '上海';
foreach($arr as $key = $val) {
if($val == $arg) {
echo "{$val}與{$arg}匹配\n";
} else {
echo "{$val}與{$arg}未匹配\n";
}
}
/**
*
臺灣與上海未匹配
香港與上海未匹配
上海與上海匹配
廣東與上海未匹配
浙江與上海未匹配
*/
if(!empty($data))?echo?'xxxxxx';
數據存在則輸出,不存在不輸出~就相當于隱藏了。