-
-
$tmp = 0 == "a"? 1: 2;
- echo $tmp;
- ?>
複製程式碼
結果1 int和string型別強制轉換造成的,0==="a"
0 == 0 一定是true啊
PHP是弱型別。 。
$tmp = 0 === "a"? 1: 2;
echo $tmp; 這樣就是2
4. 已知一個字串如下: $str = "1109063 milo 1";
用一行程式碼將該字串裡面的1109063賦值給$uid, milo賦值給$user, 1賦值給$type
空格如下
list($uid, $user, $type) = explode(" ", $str);
t如下
list($uid, $user, $type) = explode("t", $str);
list($uid, $user, $type) = sscanf($str, "%d %s %d");
$n = sscanf($auth, "%dt%s %s", $id, $first, $last);
5. 分別列出以下類型的有符號和無符號範圍 TINYINT SMALLINT MEDIUMINT INT
TINYINT-2^7 - 2^7-10 ~ 2^8-1
SMALLINT-2^15 - 2^15-1 0 ~ 2^16-1
MEDIUMINT-2^23 - 2^23-1 0 ~ 2^24-1
INT-2^31 - 2^31-1 0 ~ 2^32-1
6. 將下面的陣列用一行拼成一個字串i am milo! day day up!
-
-
$arr = array(
- 'I', 'AM', 'MILO!', 'DAY', ' DAY', 'UP!'
- );
- ?>
- $str = strtolower(implode(" ",$arr));
複製程式碼
7. 呼叫下列函數取得函數並取得count的值
-
-
function get_list($cnd = array(), &$count = false)
- {
- // 偽程式碼處理$cnd 並賦值datas
- $datas = 'i am call back';
- $count && $count = rand(1, 10000);
- return $datas;
- }
- ?>
- $count=1;
- $data = get_list($cnd,&$count);
- echo $count;
複製程式碼
8. 幾種方式去取代session機制, 簡單描述各自的優劣
mysql、memcache、cookie維持一個唯一狀態識別碼
9. 下列HTTP狀態碼出現的可能原因, 如何處理
200, 301, 404, 502, 503
200
請求已成功,請求所希望的回應頭或資料體將隨此回應傳回。
301
被要求的資源已永久移動到新位置,並且將來任何對此資源的引用都應該使用本回應傳回的若干個 URI 之一。如果可能,擁有連結編輯功能的用戶端應自動把請求的位址修改為從伺服器回饋回來的位址。除非額外指定,否則這個回應也是可緩存的。 新的永久性的 URI 應在回應的 Location 域中傳回。除非這是一個 HEAD 請求,否則回應的實體中應包含指向新的 URI 的超連結及簡短說明。 如果這不是一個 GET 或 HEAD 請求,因此瀏覽器禁止自動進行重定向,除非得到使用者的確認,因為請求的條件可能因此發生變化。
注意:對於某些使用 HTTP/1.0 協定的瀏覽器,當它們發送的 POST 請求得到了一個301回應的話,接下來的重定向請求將會變成 GET 方式。
404
請求失敗,請求所希望得到的資源未被在伺服器上發現。沒有資訊能夠告訴使用者這個狀況到底是暫時的還是永久的。假如伺服器知道情況的話,應使用410狀態碼來告知舊資源因為某些內部的設定機制問題,已經永久的不可用,而且沒有任何可以跳轉的位址。 404這個狀態碼被廣泛應用於當伺服器不想揭示到底為何請求被拒絕或沒有其他適合的回應可用的情況下。
502
作為網關或代理工作的伺服器嘗試執行請求時,從上游伺服器接收到無效的回應。
503
由於臨時的伺服器維護或過載,伺服器目前無法處理請求。這個狀況是臨時的,並且將在一段時間以後恢復。如果能夠預期延遲時間,那麼回應中可以包含一個 Retry-After 頭用以標示這個延遲時間。如果沒有給予這個 Retry-After 訊息,那麼客戶端應以處理500回應的方式處理它。 注意:503狀態碼的存在並不意味著伺服器在過載的時候必須使用它。某些伺服器只不過是希望拒絕客戶端的連線。
200 OK 一切正常,對GET和POST請求的應答文件跟在後面。
301 Moved Permanently 客戶請求的文檔在其他地方,新的URL在Location頭中給出,瀏覽器應該自動地訪問新的URL
404 Not Found 無法找到指定位置的資源。這也是一個常用的應答。
502 Bad Gateway 伺服器作為網關或代理時,為了完成請求訪問下一個伺服器,但該伺服器傳回了非法的應答。
503 Service Unavailable 伺服器因維護或負載過重而未能應答。例如,Servlet可能在資料庫連線池已滿的情況下傳回503。伺服器回傳503時可以提供一個Retry-After頭。
10. 有以下資料庫, 用原生態mysql擴展去連接並查詢user表的前十行
host: 192.168.0.254
port: 3306
user: one
pass: piece
database: db_user
table: user
-
- $link = mysql_connect("192.168.0.254:3306","one","piece") 或 die('Could not connect: ' ());
- mysql_select_db('db_user',$link);
- $query = mysql_query("select * from user limit 10");
- while($rs = mysql_fetch_array($query,MY_array($query,MY_array($query) )
- {}
複製程式碼
11. 用autoload($class) 實作Lib目錄下的類別的自動載入並且可以相容子目錄
-
-
$request->action = lcfirst(implode(array_map(
- 'ucfirst',
- explo( ', strtolower($request->action))
- )));
- ----------------------------- -------------------
- function __autoload($class)
- {
- $cls = strtolower(str_replace("_","/", $class));
- if(file_exsits(LIB.$cls.'.php'))
- {
- include_once(LIB.$cls.'.php ');
- }
- else
- {
- die("not found {$class} class");
- }
- }
- defined("LIB",'/ data/wwwroot/www.xx.com/lib/');
- $author = new Lib_Author();
- --------------------- --------------------------------------
- function __authload($class)
- {
- $cls = explode("_",$class);
- if(@is_dir($cls[1]))
- {
- if(@is_file($cls[2]) )
- {
- include_once("CON_PATH".$cls[1].'/'.$cls[2].".php");
- }
- else
- {
- dir('error');
- }
- }
- else if(@is_file($cls[1].".php"))
- {
- include_once("CON_PATH". $cls[1].".php");
- }
- else
- {
- dir('error');
- }
- }
- ----- ----------------------------------
- function __autoload($class)
- {
- $cls = explode("_",$class);
- $file = get_file($cls);
- if($file=='error')
- {
- die('error' );
- }
- include_once($file);
- }
- function get_file($dir)
- {
- if(is_array($dir))
- {
- if(is_array($dir))
- {
- {
- foreach($dir as $k=>$v)
- {
- $tmpdir .= $v.'/';
- if(is_dir('CON_PATH'.$tmpdir))
- {
- continue();
- }
- else if(is_file('CON_PATH'.$tmpdir.".php"))
- {
- return 'CON_PATH'.$tmpdir.".php" ;
- }
- else
- {
- return 'error';
- }
- }
- return 'error';
- }
- return 'error';
- }
defined("CON_PATH","/data/wwwroot/www.xx.com/app/cntroller/");
- $sb = new controller_sb();
- ------------------------------------------------
- function __autoload_my_classes($classname)
- {
- # ... your logic to include classes here
- }
spl_autoload_register('__autoload_my_classes'); ------------------- ----------------------------------------
複製程式碼
12. 用set_error_handle 去捕獲錯誤並輸出, 等級自己定
-
-
-
-
-
set_error_handle(callback,level)
- function callback(int $errno , string $errstrerr [,string $file. int $errline [, array $errcontext ]]] ){
- }
function dealErrorHandler($errno,$errstr,$errfile,$errline)
- {
- switch ($errno){
- case E_USER_ERROR:
- echo "error [$errno] $errstr fatal error on line $errline in file $errfile";
- cho;
- breakcase E_USER_WARNING:
- cho;
- case E_USER_WARNING:break;
- case E_USER_NOTICE:
- echo "my notice[$errno] $errstr";
- ;
- breakdefault:
-
- echo "unkonwn error type :[$errno] $errstr";
- break;
- }
- }
set_erro_handler(dealErrorHandler);
trigger_error>trigger" , E_USER_NOTICE);trigger_error("warning", E_USER_WARNING);trigger_error("error", E_USER_ERROR);
|