2018年10月13日 星期六

《面試官別再問》PHP常用特殊符號轉換以及一些常用函數

註解符號:
         // 單行註解    
         /* */ 多行註解
引號的使用
         ' ' 單引號,簡單字符串,不經任何處理直接拿過來;
         " "雙引號,php動態處理然後輸出,一般用於處理$變量.
布林值:   
          一種是true 即真的;
         另一種是false 即假的
常見變量:   
         string 字串(數字\漢字\等等)
         integer 整數(1、2、3、4、5、0、-1、-2、等等)
         double 浮點數(小數點)
         array 陣列  
         object 對象
可以用的方法有gettype($mix) 和settype($mix,$typename);
常用符號轉義:
         \" 雙引號
         \\ 反斜線
         \n 換行
         \r 回行首
         \t 水平製表
運算符號:
         + 加法運算 

         - 減法運算
         * 乘法運算 
         
         / 除法運算
         % 取餘數 
         
         ++ 自加1              
         -- 自減1 

         . 連接兩個字符串        
賦值運算:
         = 把右邊的值代入左邊
         += 把右邊的值加到左邊
         -= 把右邊的值減到左邊
         *= 把左邊的值乘以右邊
         /= 把左邊的值除以右邊
         .= 把右邊的字串加到左邊
位運算:
         & 按位與
         | 按位或
         ^ 按位異或(xor)
         << 向左移1位
         >> 向右移1位
         ~ 取補數
邏輯運算:
       < 小於 

       > 大於            
       <= 小於等於 

       >= 大於等於
       != 不等於 

       && 與       
       || 或 

       ! 非
其他運算符號
         $ 變量符號              
         & 變量取別名
         @ 不顯示錯誤信息(加在函數前)
         -> 對象的方法或者屬性  
         => 數組的元素值  
         ?: 三元運算符    

動態變數 Variable variables

剛接觸PHP的人一定會覺得很奇怪,會什麼變數(variables)前面都要帶$為什麼不像 java 或者其他語言,變數名直接拿來用呢?
後來才知道 PHP 支援 Dynamic variables動態變數 i.e variable variables的功能。
例子:
<?php
$hello = 'world';
$world = 'hello';

echo $$world . "\n"; //output: world

PHP 會把 ${$world} 的值拿出來替換,因此變數成為 $hello,所以 output就是 'world' 字串。但太多的$...$轉換會造成代碼理解的困難。

動態函式 Variable functions

這也是PHP中神奇的功能,當變數後面接著parentheses(),PHP編譯程式會去試著執行這函式。
但PHP原生功能(language constructs) 像是 echo, print, unset(), isset(), empty(), include, require等等,動態函式不會生效。範例如下
<?php
namespace StudyGroup\LanguageFeatures\PHPClass;

class Foo
{
    public static $fun = 'static property';
    public static function fun()
    {
        echo 'Method fun called' . "\n";
    }
    public function hello()
    {
        echo 'Hello world!' . "\n";
    }
}

echo Foo::$fun . "\n"; // This prints 'static property'. It does need a $fun in this scope.
$fun = 'fun';
Foo::$fun();  // This calls $foo->fun() reading $fun in this scope.
常用基本方法:
1. PHP轉換字符串為大小寫!
strtolower(); 把字符轉小寫
strtoupper(); 把字符轉大寫
2.PHP加密字符串
不可還原:
md5(); 
sha1(); 
可還原:
base64_encode(); 
base64_decode(); 
3.關於引號
一、單引號是原樣輸出
二、雙引號是內容解釋進行輸出
三、反單引號(小引號)是執行一個系統命令,如`dir`。常用在表名,字段名上面。
四、“\”作用於轉譯字符,如“\n”為換行。
4.函數:htmlspecialchars() 和htmlentities()
本函數將特殊字符轉成HTML 的字符串格式( &....; )。最常用到的場合可能就是處理客戶留言的留言版了。 
& (和) 轉成&
" (雙引號) 轉成"
< (小於) 轉成<
> (大於) 轉成>
(空格)轉成 
  
5.批量輸出HTML內容!
echo <<< EOT
HTML輸出內容。//這裡註釋照樣輸出!
EOT;
print <<<EOT
HTML輸出內容。//這裡註釋照樣輸出!
EOT;
(注意:內部包含變量用“{變量}”)
6.判斷文件是否存在並且輸出內容file_exists ()
  1. <? php 
  2. $FileName = "File.TXT" ; 
  3. if ( file_exists ( $FileName )){  
  4. echo "<pre>" . file_get_contents ( $FileName ). "</pre>" ;  
  5. } else 
  6. { 
  7. echo "no" ; 
  8. } 
  9. ?> 
7.刪除變量釋放內存unset();
unset($var);
unset($var,$var1);
8.is_numeric;
檢測變量是否是數字; 
9.is_int;
檢測變量是否是整數;
10.is_null;
檢測變量是否為NULL ;
11.is_string
檢測變量是否是字符串
12.is_real;
is_float() 的別名
13.isset
檢測變量是否定義
14.is_bool
檢測變量是否是布林值
15.is_array
檢測變量是否是數組
16.is_object
檢測變量是否是一個對象
17.substr() 函數返回字符串的一部分。
  1. substr ( String , Start , SelectNum )  
  2. echo substr ( 'abcdef' , 1 ); // bcdef          
  3. echo substr ( 'abcdef' , 1 , 3 ); // bcd        
  4. echo substr ( 'abcdef' , 0 , 4 ); // abcd        
  5. echo substr ( 'abcdef' , 0 , 8 ); // abcdef        
  6. echo substr ( 'abcdef' , - 1 , 1 ); // f     
18.nb2br() 把轉義的換行變成html的<br />
  1. echo nl2br ( "foo isn't\n bar" );   

沒有留言:

張貼留言

熱門文章