return
* 函數體遇到 return 就終止函數體內部執行 控制權交回函數調用處
* 省略return 返回值爲NULL
引用返回
* 必須在函數聲明和指派返回值給一個變量時都使用引用運算符&
//舉例子
function &myFunc(){
static $a = 10;//靜態
return $a;
}
$b= &myFunc();// $b與函數的靜態變量$a互爲引用
echo $b;//輸出10
$b=100;
echo myFunc();//輸出100
外部文件的導入
include/require 語句包含並執行指定文件
如果給出路徑名:按照路徑查找 否則從include_path中查找文件 如果include_path中也沒有,則從調用腳本文件所在的目錄和當前工作目錄中尋找
當一個文件被包含時,其中所包含的代碼繼承了include所在行的變量範圍
加載過程中未找到文件:
include 發出一條警告 E_WARNING
require 發出一個致命錯誤 E_COMPITE_ERROR
require(include)/require_once(include_once)區別:
PHP會檢查該文件是否已經被包含過,如果是則不會再次包含。
時間日期函數
* date() //時間格式化
* strtotime() //時間轉化時間戳
* mktime() //創造一個時間戳 時分秒月日年
* time() //當前時間戳
* microtime() //返回當前 Unix 時間戳的微秒數:
* date_default_timezone_set() //設置時區
IP處理函數
ip2long()//將一個數字格式的IPv4地址轉換成字符串格式(192.168.0.1)
long2ip()//將一個字符串格式 的IPv4地址轉換成數字格式
打印處理函數
print() //只打印一個
echo //逗號隔開打印多個
printf() //根據格式輸出
sprintf() //返回無輸出
print_r() //數組對象 格式化好打印 對於布爾值不同
var_dump() //數組對象 格式化好打印(每個值的類型 長度) 對於布爾值不同
var_export() //內容格式化輸出 符合php的語法結構 第二個參數爲true時 該函數返回不輸入
序列化和反序列化
將一個變量所代表的 “內存數據”轉換爲“字符串”的形式,並持久保存在硬盤(寫入文件中保存)上的一種做法,即,把“內存數據”轉換爲“字符串”然後保存到文件中
//* serialize()//
$arr = array(
'name'=>'zhangsan',
'bag'=>array(
'book'=>'English',
'fruit'=>'apple'
),
'age'=>8,
'sex'=>'boy'
//查看數組初始狀態的打印
print_r($arr);
/**
Array
(
[name] => zhangsan
[bag] => Array
(
[book] => English
[fruit] => apple
)
[age] => 8
[sex] => boy
)
*/
//序列化並打印
$str = serialize($arr);
echo "<br>";
print_r($str);
/*
a:4:{s:4:"name";s:8:"zhangsan";s:3:"bag";a:2:{s:4:"book";s:7:"English";s:5:"fruit";s:5:"apple";}s:3:"age";i:8;s:3:"sex";s:3:"boy";}
*/
//反序列化並打印
$bak_arr = unserialize($str);
print_r($bak_arr);
/*
Array
(
[name] => zhangsan
[bag] => Array
(
[book] => English
[fruit] => apple
)
[age] => 8
[sex] => boy
)
*/
字符串處理函數
implode()
//把數組元素組合爲一個字符串
$arr = array('Hello','World!','Beautiful','Day!');
echo implode(" ",$arr);
//得到
Hello World! Beautiful Day!
join()//是 implode() 函數的別名
explode()//把字符串打散爲數組
$str = "Hello world. I love Shanghai!";
$arr = explode(" ",$str);
print_r ($arr);
//得到
Array
(
[0] => Hello
[1] => world.
[2] => I
[3] => love
[4] => Shanghai!
)
strrev()
//反轉字符串
$str = "Hello world. I love Shanghai!";
$str1 = strrev($str);
echo $str1;
//得到
!iahgnahS evol I .dlrow olleH
trim()//移除字符串兩側的空白字符或其他預定義字符
ltrim()//移除字符串左側的空白字符或其他預定義字符
rtrim()//移除字符串右側的空白字符或其他預定義字符
strstr()
//查找 "world" 在 "Hello world!" 中是否存在,如果是,返回該字符串及後面剩餘部分
echo strstr("Hello world!","world");
//得到
lo world!
number_format('格式化數組','小數位數','小數點','千分位符')//函數通過千位分組來格式化數字
echo number_format("1000000.12345",2,"@","&");
//得到
1&000&000@12
substr()//截取字符串
//substr(string,start,length)
數組的處理函數
* array_keys() //返回包含數組中所有鍵名的一個新數組
* array_values() //返回數組中所有的值(不保留鍵名)
* array_diff() // 比較兩個數組的鍵值,並返回差集 同名建 返回第一個數組的值
$a1=array("a"=>"red1","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_diff($a1,$a2);
print_r($result);
//得到
Array
(
[a] => red1
[d] => yellow
)
* array_intersect() //比較兩個數組的鍵值,並返回交集:
$a1=array("a"=>"red1","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_intersect($a1,$a2);
print_r($result);
//得到
Array
(
[b] => green
[c] => blue
)
* array_merge() //把兩個數組合併爲一個數組 同名建 返回二個數組的值
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge($a1,$a2));
//得到
Array
(
[a] => red
[b] => yellow
[c] => blue
)
* array_shift() //刪除數組中的第一個元素,並返回被刪除元素的值
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_shift($a),'<br>';
print_r ($a);
//得到
red
Array
(
[b] => green
[c] => blue
)
* array_unshift() //函數用於向數組插入新元素。新數組的值將被插入到數組的開頭。
$a=array("a"=>"red","b"=>"green");
array_unshift($a,"blue");
print_r($a);
//得到
Array ( [0] => blue [a] => red [b] => green )
* array_pop() //刪除數組中的最後一個元素,並返回被刪除元素的值
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_pop($a),'<br>';
print_r ($a);
//得到
blue
Array
(
[a] => red
[b] => green
)
* array_push() //向數組尾部插入 一個或者多個元素
*
$a=array("red","green");
array_push($a,"blue","yellow");
print_r($a);
//得到
Array ( [0] => red [1] => green [2] => blue [3] => yellow )
* array_rand() //返回包含隨機鍵名的數組 第二個參數默認1 小於數組長度
$a=array('a'=>"red",'b'=>"green",'c'=>"blue",'d'=>"yellow",'e'=>"brown");
$random_keys=array_rand($a,3);
print_r($random_keys);
* sort() // 函數對索引數組進行升序排序 成功則返回 TRUE,否則返回 FALSE
$cars=array("Volvo","BMW","Toyota");
sort($cars);
print_r($cars);
Array
(
[0] => BMW
[1] => Toyota
[2] => Volvo
)
//rsort() 函數行爲與 sort() 相反
sort() 函數用於對數組單元從低到高進行排序。 鍵被打亂
rsort() 函數用於對數組單元從高到低進行排序。鍵被打亂
$arr = array("b", "a", "c");
sort($arr);
print_r($arr);
Array ( [0] => a [1] => b [2] => c )
asort() 函數用於對數組單元從低到高進行排序並保持索引關係。 保持原鍵值
arsort() 函數用於對數組單元從高到低進行排序並保持索引關係。 保持原鍵值
$arr = array("b", "a", "c");
asort($arr);
print_r($arr);
Array ( [1] => a [0] => b [2] => c )
ksort() 函數用於對數組單元按照鍵名從低到高進行排序。
krsort() 函數用於對數組單元按照鍵名從高到低進行排序。
$arr = array("b"=>18, "a"=>20, "c"=>25);
ksort($arr);
Array ( [a] => 20 [b] => 18 [c] => 25 )