關於empty和isset的介紹,可以看這篇部落格:
bool empty ( mixed$var
)判斷乙個變數是否被認為是空的。當乙個變數並不存在,或者它的值等同於
false
,那麼它會被認為不存在。如果變數不存在的話,empty()並不會產生警告。
<?phpvar_dump(empty(0)); //bool(true)
var_dump(empty(0.0)); //bool(true)
var_dump(empty('0')); //bool(true)
var_dump(empty('')); //bool(true)
var_dump(empty(' '));//bool(false)
var_dump(empty(trim(' ')));//bool(true)
var_dump(empty(null)); //bool(true)
var_dump(empty(null)); //bool(true)
var_dump(empty($undefine));//bool(true)
var_dump(empty(false)); //bool(true)
var_dump(empty(false)); //bool(true)
var_dump(empty(array()));//bool(true)
?>
bool isset ( mixed注意傳入的引數不能使常量或者常量表示式,比如下面的做法是錯誤的:$var
[, mixed$...
] )檢測變數是否設定,並且不是
null
。如果已經使用 unset() 釋放了乙個變數之後,它將不再是 isset()。若使用 isset() 測試乙個被設定成
null
的變數,將返回false
。同時要注意的是 null 字元("\0")並不等同於 php 的null
常量。如果一次傳入多個引數,那麼 isset() 只有在全部引數都以被設定時返回
true
計算過程從左至右,中途遇到沒有設定的變數時就會立即停止。
<?php正確用法:傳入isset的是乙個變數,只要為該變數賦過值(null除外),那麼判斷結果都是true。使用unset對乙個變數進行「銷毀」操作後,再對該變數進行isset判斷,返回的結果是false。var_dump(isset("123"));//wrong
var_dump(isset(array()));//wrong
var_dump(isset(__file__));//wrong
var_dump(isset(null));//wrong
var_dump(isset(false));//wrong
?>
<?php$a = '';
var_dump(isset($a));//bool(true)
unset($a);
var_dump(isset($a));//bool(false)
$b = null;
var_dump(isset($b));//bool(false)
$c = false;
var_dump(isset($c));//bool(true)
$d = 0;
var_dump(isset($d));//bool(true)
$arr = array();//空陣列
var_dump(isset($arr));//bool(true)
$arr2 = array("one"=>"demo");
var_dump(isset($arr2));//bool(true)
unset($arr2['one']);
var_dump(isset($arr2));//bool(true)
var_dump(isset($arr2['one']));//bool(false)
?>
bool is_null ( mixed有手冊宣告可知,只要賦給變數的值,並且賦的值不是null,那麼is_null判斷的結果都返回false,即都不認為是空。$var
)如果
var
是 null 則返回true
,否則返回false
。檢視
null
型別獲知變數什麼時候被認為是null
,而什麼時候不是。
<?php變數區分大小寫。var_dump(is_null($a=null));//bool(true)
var_dump(is_null($a=0)); //bool(false)
var_dump(is_null($a=''));//bool(false)
var_dump(is_null($a=array()));//bool(false)
var_dump(is_null($a=false));//bool(false)
?>
函式名不區分大小寫。
<?php1、使用define時,常量名可以儲存在乙個變數中,即常量名稱就是變數的值,而const不行。//直接設定常量
define("test","this is test");
const demo = "this is demo";
echo test; //this is test
echo demo; //this is demo
//使用define時,常量名稱可以是變數,但是變數值是字串
$name = "aaa";
define($name,"this is aaa");
echo aaa; //this is aaa
//const不能這樣使用
const $name = "this is other aaa";//wrong
?>
2、使用define時,指定的值可以是任何形式,比如表示式、變數、以及字面值;而使用const時,指定的值只能是字面值,不能是表示式或者變數。
3、在class內部宣告常量只能用const,不能使用define。
4、define可以出現在判斷和迴圈中,而const不行。
<?php有興趣的話,可以參考c和c++中的define和const:while($i<10)
if($i) else
?>
可以參考麥子學院課程:
有乙個日期,,輸出data的上周末的日期。
php陣列隨機打亂函式是? 過濾陣列中空的元素的函式是?
php中自動載入類是怎麼實現的?
寫乙個正則,實現路由匹配 /live/index?roomid=1001 成 /1001
寫乙個函式, 實現在乙個陣列的任意位置插入乙個值。要求盡量簡潔高效。
乙個勳章的名字是不超過4個字元的(1個漢字算2個字元)。請簡單寫出這個邏輯判斷的關鍵**。
有乙個所有正在直播的房間的列表roomlist,包括roomid, title, uid, online 字段資訊,請把roomlist按照online欄位正序排列。
unset($_cookie['bili_uid') 會刪除本地的cookie嗎?
請簡單描述 session 的實現原理。如何實現session同步到伺服器集群?
請簡單描述redis和memcache的區別和各自的利弊。以及哪種場景用哪個更合適?
請用文字或者關鍵**說明如何用redis實現乙個7日禮物投喂榜。榜單迴圈7日變化,第8天會刪掉第1天的資料(不是自然周的7天)
請寫出 5 個mysql中你常用的函式或者常量,以及各自的作用。
分庫分表的目的是什麼? 一般如何資料表水平拆分資料表。
請簡單描述單索引和聚合索引的區別。哪些場景各自適合?
有一張表 user(uid, uname, face, register_time, last_login_time) 裡面有 幾千萬條記錄,索引欄位是uid。寫出關鍵sql,要求使用索引,高效的取出50000000後的10條資料。
php-fpm程序分配有哪幾種方式?如何選擇?
linux中,檢視當前php的版本的系統命令是? 檢視 php-fpm 的程序的命令是? 檢視埠號 6379 的程序的命令是? 重啟 nginx 的命令是?
檢視記憶體占用的命令是? 能夠實時顯示系統中各個程序的資源占用狀況的命令是?
寫乙個nginx簡單的 rewrite 實現由 跳轉到
簡述tcp三次握手的過程?
寫出 5 個你接觸過的 http 的狀態碼,分別代表什麼意思?
php面試題簡略整理
假如某 要秒殺一定量的小公尺手機,我們要怎麼做一些高併發的處理 這裡我們可以看到秒殺成功的第乙個使用者的id是208522,秒殺成功的最後乙個使用者是176260,參與秒殺人數總共 是20w。讓大家注意這些的原因是為了驗證下面的準確性 接下來我們依次從佇列中把秒殺成功的500個使用者取出來並觀察第乙...
面試題 PHP面試題
建議 比如是系統配置,缺少了無法執行,自然使用 require 如果某一段程式少了,只是少了統計 訪問的,不是必不可少的。可以使用 include 而加不加 once 就是效率上的區別,雖然系統會幫你考慮只包含一次,但系統的判斷會降低效率,因此,更應該在開發之初,把目錄結構調整高好,盡量不使用 on...
面試題整理
2014.3.19日整理 1.建立一張表hack 裡面就乙個欄位num,然後用sql語句從1開始插入到100,怎麼寫?oracle 答 1.create tablehack num number 建表語句 2.begin for i in1.100loop insert intohack num v...