標籤:print toolbar fse har 符號 i++ value 根據 tar
先聲明一下,copy來的,各位看官請勿吐槽,我是留給自己回顧和補充知識點用的。
PHP資料類型包括8種
相對應的判斷函數有:is_bool(),is_int(),is_integer(),is_long()(同樣是判斷整型),is_real()(同樣是判斷浮點型),is_float(),is_string(),is_array(),is_object(),is_null()用來檢測變數是否為 NULL
其他常用函數
array_values() 函數可以返回數組中所有的值並給其建立數字索引
<?php$arr = [0,1,2,3];unset($arr[1]);$arr = array_values($arr);/*array (size=3) 0 => int 0 1 => int 2 2 => int 3 */var_dump($arr);?>
list()函數可以將數組中的值賦給變數
list($a,$b,$c) = [1,2,3];echo $a;//1echo $b;//2echo $c;//3// 僅接收其中一個list(, , $power) = [1,2,3];echo $power;//3// list() 不能對字串起作用list($bar) = "abcde";var_dump($bar); // NULL
回呼函數是指將一個函數的函數名作為參數傳到另一個函數中
function demo($num,$n){ for($i=0;$i<$num;$i++){ if($n($i)){ echo $i.‘<br>‘; } }}function test($i){ if($i%5){ return true; }}demo(20,‘test‘);
遞迴函式
<?php function test( $n ) { echo $n; if($n>0){ test($n-1); } echo $n; } test(5);//543210012345?>
索引值操作
array_values:array_values() 返回 input 數組中所有的值並給其建立數字索引(文檔上面有介紹)
array_keys:array_keys() 返回 input 數組中的數字或者字串的鍵名
array array_keys ( array $array [, mixed $search_value [, bool $strict = false ]] )
如果指定了選擇性參數 search_value,則只返回該值的鍵名。否則 input 數組中的所有鍵名都會被返回
如果指定了選擇性參數 strict,表示判斷在搜尋的時候是否該使用嚴格的比較(===)
<?php$array = array(0 => 100, "color" => "red");//Array ( [0] => 0 [1] => color ) print_r(array_keys($array));$array = array("blue", "red", "green", "blue", "blue");// Array ( [0] => 0 [1] => 3 [2] => 4 ) print_r(array_keys($array, "blue"));$array = array("color" => array("blue", "red", "green"), "size" => array("small", "medium", "large"));Array ( [0] => color [1] => size )print_r(array_keys($array));?>
in_array:in_array — 檢查數組中是否存在某個值
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
如果第三個參數 strict 的值為 TRUE 則 in_array() 函數還會檢查 needle 的類型是否和 haystack 中的相同
<?php$os = array("Mac", "NT", "Irix", "Linux");if (in_array("Irix", $os)) { //Got Irix echo "Got Irix";}if (in_array("mac", $os)) { echo "Got mac";}?>
array_flip:array_flip — 交換數組中的鍵和值,成功時返回交換後的數組,如果失敗返回 NULL
array array_flip ( array $trans )
array_flip() 返回一個反轉後的 array,例如 trans 中的鍵名變成了值,而 trans 中的值成了鍵名
如果同一個值出現了多次,則最後一個鍵名將作為它的值,所有其它的都丟失了
[注意]trans中的值需要能夠作為合法的鍵名,例如需要是 integer 或者 string。如果值的類型不對將發出一個警告,並且有問題的鍵/值對將不會反轉
<?php$trans = array("a" => 1, "b" => 1, "c" => 2);$trans = array_flip($trans);//Array ( [1] => b [2] => c )print_r($trans);?>
array_reverse:array_reverse — 返回一個單元順序相反的數組
array array_reverse ( array $array [, bool $preserve_keys = false ] )
如果參數preserve_keys設定為 TRUE 會保留數位鍵。非數位鍵則不受這個設定的影響,總是會被保留
array_count_values:array_count_values — 統計數組中所有的值出現的次數
array array_count_values ( array $input )
<?php$array = array(1, "hello", 1, "world", "hello");//Array ( [1] => 2 [hello] => 2 [world] => 1 )print_r(array_count_values($array));?>
array_unique:array_unique — 移除數組中重複的值
array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
[注意]鍵名保留不變。array_unique() 先將值作為字串排序,然後對每個值只保留第一個遇到的鍵名,接著忽略所有後面的鍵名。這並不意味著在未排序的 array 中同一個值的第一個出現的鍵名會被保留
<?php$input = array("a" => "green", "red", "b" => "green", "blue", "red");$result = array_unique($input);//Array ( [a] => green [0] => red [1] => blue )print_r($result);?>
array_sum:array_sum — 計算數組中所有值的和,array_sum() 將數組中的所有值的和以整數或浮點數的結果返回
<?php$a = array(2, 4, 6, 8);//sum(a) = 20echo "sum(a) = " . array_sum($a) . "\n";$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);//sum(b) = 6.9echo "sum(b) = " . array_sum($b) . "\n";?>
array_merge:array_merge — 合并一個或多個數組
array_intersect:array_intersect — 計算數組的交集
array array_intersect ( array $array1 , array $array2 [, array $ ... ] )
array_intersect() 返回一個數組,該數組包含了所有在 array1 中也同時出現在所有其它參數數組中的值
[注意]鍵名保留不變
<?php$array1 = array("a" => "green", "red", "blue");$array2 = array("b" => "green", "yellow", "red");$result = array_intersect($array1, $array2);//Array ( [a] => green [0] => red )print_r($result);?>
array_diff:array_diff — 計算數組的差集
array array_diff ( array $array1 , array $array2 [, array $... ] )
對比返回在 array1 中但是不在 array2 及任何其它參數數組中的值
<?php$array1 = array("a" => "green", "red", "blue", "red");$array2 = array("b" => "green", "yellow", "red");$result = array_diff($array1, $array2);//Array ( [1] => blue )print_r($result);?>
array_fill:array_fill — 用給定的值填充數組,返回填充後的數組
array array_fill ( int $start_index , int $num , mixed $value )
array_fill() 用 value 參數的值將一個數組填充 num 個條目,鍵名由 start_index 參數指定的開始
?php$a = array_fill(5, 6, ‘banana‘);$b = array_fill(-2, 4, ‘pear‘);//Array ( [5] => banana [6] => banana [7] => banana [8] => banana [9] => banana [10] => banana )print_r($a);//Array ( [-2] => pear [0] => pear [1] => pear [2] => pear )print_r($b);?>
棧和隊列
array_pop:array_pop — 將數組最後一個單元彈出(出棧)
mixed array_pop ( array &$array )
array_pop() 彈出並返回 array 數組的最後一個單元,並將數組 array 的長度減一。如果 array 為空白(或者不是數組)將返回 NULL
<?php$stack = array("orange", "banana", "apple", "raspberry");$fruit = array_pop($stack);//Array ( [0] => orange [1] => banana [2] => apple )print_r($stack);?>
array_push:array_push — 將一個或多個單元壓入數組的末尾(入棧),返回處理之後數組的元素個數
int array_push ( array &$array , mixed $var [, mixed $... ] )
array_push() 將 array 當成一個棧,並將傳入的變數壓入 array 的末尾。array 的長度將根據入棧變數的數目增加
<?php$stack = array("orange", "banana");array_push($stack, "apple", "raspberry");//Array ( [0] => orange [1] => banana [2] => apple [3] => raspberry )print_r($stack);?>
array_shift:array_shift — 將數組開頭的單元移出數組
mixed array_shift ( array &$array )
array_shift() 將 array 的第一個單元移出並作為結果返回,將 array 的長度減一併將所有其它單元向前移動一位。所有的數字鍵名將改為從零開始計數,文字鍵名將不變
<?php$stack = array("orange", "banana", "apple", "raspberry");$fruit = array_shift($stack);//Array ( [0] => banana [1] => apple [2] => raspberry )print_r($stack);?>
array_unshift:array_unshift — 在數組開頭插入一個或多個單元,返回 array 數組新的單元數目
int array_unshift ( array &$array , mixed $var [, mixed $... ] )
array_unshift() 將傳入的單元插入到 array 數組的開頭。注意單元是作為整體被插入的,因此傳入單元將保持同樣的順序。所有的數值鍵名將修改為從零開始重新計數,所有的文字鍵名保 持不變
<?php$queue = array("orange", "banana");array_unshift($queue, "apple", "raspberry");//Array ( [0] => apple [1] => raspberry [2] => orange [3] => banana )print_r($queue);?>
trim():該函數用於返回去掉字串首尾空格的字串
ltrim():ltrim函數用於刪除字串開頭的空白字元(或其他字元)
rtrim():rtrim函數用於刪除字串末端的空白字元(或者其他字元)
strtolower():strtolower — 將字串轉化為小寫
strtoupper():strtoupper — 將字串轉化為大寫
ucfirst():ucfirst — 將字串的首字母轉換為大寫
ucwords():ucwords — 將字串中每個單詞的首字母轉換為大寫
htmlspecialchars():把指定特殊符號轉換成實體
addslashes():使用反斜線引用字串,返回字串
stripslashes(): 反引用一個引用字串
strrev():strrev — 反轉字串
string strrev ( string $string )
<?phpecho strrev("Hello world!"); // 輸出 "!dlrow olleH"?>
strlen():strlen — 擷取字串長度
md5():計算字串的 MD5 散列值
strstr():尋找字串的首次出現,返回haystack字串從needle第一次出現的位置開始到haystack結尾的字串
string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
before_needle若為TRUE,strstr()將返回needle在haystack中的位置之前的部分
<?php$email = ‘[email protected]‘;$domain = strstr($email, ‘@‘);echo $domain; // @example.com$user = strstr($email, ‘@‘, true); echo $user; //name?>
strpos():strpos()尋找字串首次出現的位置
mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
<?php// 忽視位置位移量之前的字元進行尋找$newstring = ‘abcdef abcdef‘;$pos = strpos($newstring, ‘a‘, 1); // $pos = 7, 不是 0?>
strrpos():strrpos()計算指定字串在目標字串中最後一次出現的位置
int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
<?php$foo = "0123456789a123456789b123456789c";var_dump(strrpos($foo, ‘7‘, -5)); // 從尾部第 5 個位置開始尋找 // 結果: int(17)var_dump(strrpos($foo, ‘7‘, 20)); // 從第 20 個位置開始尋找 // 結果: int(27)var_dump(strrpos($foo, ‘7‘, 28)); // 結果: bool(false)?>
substr():substr()返回字串的子串
string substr ( string $string , int $start [, int $length ] )
<?php$rest = substr("abcdef", -1); // 返回 "f"$rest = substr("abcdef", -2); // 返回 "ef"$rest = substr("abcdef", -3, 1); // 返回 "d"?><?php$rest = substr("abcdef", 0, -1); // 返回 "abcde"$rest = substr("abcdef", 2, -1); // 返回 "cde"$rest = substr("abcdef", 4, -4); // 返回 ""$rest = substr("abcdef", -3, -1); // 返回 "de"?>
str_replace():str_replace()返回一個字串或者數組。該字串或數組是將 subject 中全部的 search 都被 replace 替換之後的結果
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
如果count被指定,它的值將被設定為替換髮生的次數
<?php// 賦值: <body text=‘black‘>$bodytag = str_replace("%body%", "black", "<body text=‘%body%‘>");// 賦值: Hll Wrld f PHP$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");// 賦值: You should eat pizza, beer, and ice cream every day$phrase = "You should eat fruits, vegetables, and fiber every day.";$healthy = array("fruits", "vegetables", "fiber");$yummy = array("pizza", "beer", "ice cream");$newphrase = str_replace($healthy, $yummy, $phrase);// 賦值: 2$str = str_replace("ll", "", "good golly miss molly!", $count);echo $count;?>
分割:explode()
explode()使用一個字串分割另一個字串,返回由字串組成的數組,每個元素都是string的一個子串,它們被字串delimiter作為邊界點分割出來
array explode ( string $delimiter , string $string [, int $limit ] )
如果設定了limit參數並且是正數,則返回的數組包含最多limit個元素,而最後那個元素將包含string的剩餘部分;如果limit參數是負數,則返回除了最後的-limit個元素外的所有元素;如果limit是0,則會被當做1
<?php// 樣本 1$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";$pieces = explode(" ", $pizza);echo $pieces[0]; // piece1echo $pieces[1]; // piece2// 樣本 2$data = "foo:*:1023:1000::/home/foo:/bin/sh";list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);echo $user; // fooecho $pass; // *?>
implode():implode()將一個一維數組的值轉化為字串
string implode ( string $glue , array $pieces )string implode ( array $pieces )
<?php$array = array(‘lastname‘, ‘email‘, ‘phone‘);$comma_separated = implode(",", $array);echo $comma_separated; // lastname,email,phone// Empty string when using an empty array:var_dump(implode(‘hello‘, array())); // string(0) ""?>
php中的常用函數