php基礎重溫 php7新特性
// function myTest($x)
// {
// echo $x;
// }
// myTest(5);
// $txt1="Hello world!";
// $txt2="What a nice day!";
// echo $txt1 . $txt2;
// echo strpos("Hello world!","1");
// var_dump(intdiv(10, 3));
// $x=10;
// echo $x; // 輸出10
// $y=20;
// $y += 100;
// echo $y; // 輸出120
// $z=50;
// $z -= 25;
// echo $z; // 輸出25
// $i=5;
// $i *= 6;
// echo $i; // 輸出30
// $j=10;
// $j /= 5;
// echo $j; // 輸出2
// $k=15;
// $k %= 4;
// echo $k; // 輸出3
// $x=10;
// echo $x--; // 輸出11
// $i=5;
// echo $i--; // 輸出5
// var_dump($x);
// $s = $x - 1;
// var_dump($s);
// echo 12 <=> 9; // 0
// $a = 1;
// $b = 2;
// $c = 3;
// $d = $a + $b * $c;
// echo $d;
// echo "\n";
// $e = ($a + $b) * $c; // 使用括號
// echo $e;
// echo "\n";
// function writeName($fname)
// {
// echo $fname . " Refsnes.<br>";
// }
// echo "My name is ";
// writeName("Kai Jim");
// echo "My sister's name is ";
// writeName("Hege");
// echo "My brother's name is ";
// writeName("Stale");
// function add($x,$y)
// {
// $total=$x+$y;
// return $total;
// }
// echo "1 + 16 = " . add(1,16);
/*
php7新特性
太空艙符 更快的比較兩個陣列大小 返回 0 或 -1
---------------------------
強制模式 和 嚴格模式 強制格式是會強制引數型別 嚴格型別 會檢驗引數是否為設定型別不是則報錯
---------------------------
新增返回函式void 一個新的返回值型別void被引入。 返回值宣告為 void 型別的方法要麼乾脆省去 return 語句,
要麼使用一個空的 return 語句。 對於 void 函式來說,NULL 不是一個合法的返回值。
返回的型別還有 void,定義返回型別為 void 的函式不能有返回值,即使返回 null 也不行。
void 函式可以省去 return 語句,或者使用一個空的 return 語句。
---------------------------
合併運算子
a = 10;
var_dump($a ?? "a"); // 相當於: isset($a) ? $a : 'a' => 輸出 10
var_dump($a ?: "b"); // 相當於: $a ? $a : 'a' =>輸出 10
---------------------------
常量陣列define
define('陣列名', 陣列);
define('sites', [
'Google',
'Runoob',
'Taobao'
]);
---------------------------
PHP 匿名類
PHP 7 支援通過 new class 來例項化一個匿名類,這可以用來替代一些"用後即焚"的完整類定義。
---------------------------
PHP Closure::call()
PHP 7 的 Closure::call() 有著更好的效能,將一個閉包函式動態繫結到一個新的物件例項並呼叫執行該函式。
---------------------------
PHP 過濾 unserialize()
PHP 7 增加了可以為 unserialize() 提供過濾的特性,可以防止非法資料進行程式碼注入,提供了更安全的反序列化資料。
---------------------------
PHP IntlChar()
PHP 7 通過 intl 擴充套件來支援國際化 (i18n) 和本地化 (l10n) 。此擴充套件僅僅是對 ICU 庫的基礎包裝,
並提供了和 ICU 庫類似的方法和特性。
PHP 7 通過新的 IntlChar 類暴露出 ICU 中的 Unicode 字元特性。這個類自身定義了許多靜態方法用於操作多字符集的 unicode 字元。
---------------------------
CSPRNG(Cryptographically Secure Pseudo-Random Number Generator,偽隨機數產生器)。
PHP 7 通過引入幾個 CSPRNG 函式提供一種簡單的機制來生成密碼學上強壯的隨機數。
random_bytes() - 加密生存被保護的偽隨機字串。
random_int() - 加密生存被保護的偽隨機整數。
---------------------------
PHP 7 可以使用一個 use 從同一個 namespace 中匯入類、函式和常量:
---------------------------
PHP intdiv() 函式
PHP 7 新增加了 intdiv() 函式,接收兩個引數,返回值為第一個引數除於第二個引數的值並取整。
---------------------------
php7 以前,我們使用 session 前都是要先代用 session_strat() 函式來初始化的,
但這個函式是沒有引數可以傳的,session 的配置都在 php.ini 檔案中。
在 php7 後 session_start() 可以接受一個 array 作為引數, 用來覆蓋 php.ini 檔案中設定的會話配置選項。
session_start([
'cache_limiter' => 'private', //在讀取完畢會話資料之後馬上關閉會話儲存檔案
'cookie_lifetime'=>3600, //SessionID在客戶端Cookie儲存的時間,預設是0,代表瀏覽器一關閉SessionID就作廢
'read_and_close'=>true //在讀取完會話資料之後, 立即關閉會話儲存檔案,不做任何修改
]);
$_SESSION['name']='quan';
echo $_SESSION['name'];
---------------------------
PHP 7 廢棄特性
PHP4 風格的建構函式
在 PHP4 中類中的函式可以與類名同名,這一特性在 PHP7 中被廢棄,同時會發出一個 E_DEPRECATED 錯誤。
當方法名與類名相同,且類不在名稱空間中,同時PHP5的建構函式(__construct)不存在時,會產生一個 E_DEPRECATED 錯誤。
---------------------------
PHP 7+ 版本移除了以下擴充套件:
ereg
mssql
mysql
sybase_ct
---------------------------
*/