php 7 增加了可以為 unserialize() 提供過濾的特性,可以防止非法資料進行**注入,提供了更安全的反序列化資料。
例項
<?php
class myclass1
class myclass2
$obj1 = new myclass1();
$obj1->obj1prop = 1;
$obj2 = new myclass2();
$obj2->obj2prop = 2;
$serializedobj1 = serialize($obj1);
$serializedobj2 = serialize($obj2);
// 預設行為是接收所有類
// 第二個引數可以忽略
// 如果 allowed_classes 設定為 false, unserialize 會將所有物件轉換為 __php_incomplete_class 物件
$data = unserialize($serializedobj1 , ["allowed_classes" => true]);
// 轉換所有物件到 __php_incomplete_class 物件,除了 myclass1 和 myclass2
$data2 = unserialize($serializedobj2 , ["allowed_classes" => ["myclass1", "myclass2"]]); print($data->obj1prop);
print(php_eol);
print($data2->obj2prop);
?>
以上程式執行輸出結果為:
1
2
PHP7核心剖析 PHP 函式
今天看一下php7中的函式相關的一點兒知識。首先來說,php的函式分為使用者自定義函式與內部函式兩類,先看一下使用者自定義函式。通過前面的文章,我們知道了php在編譯執行的時候,會將php指令碼解釋稱opline指令。那同樣的,php中函式也是被編譯成了opline指令集合zend op array...
PHP 7 查詢結果函式
第一次用php連線資料庫進行增刪查改操作,由於對mysql函式使用不熟悉,故紀錄下來。這個是菜鳥教程上的介紹,需要的同學可以進去看看。sql select from tb user result conn query sql while row result fetch all mysql資料如圖所...
php7 變數處理機制修改
一 間接變數 屬性和方法引用都按照從左到右的順序進行解釋 foo bar baz interpreted as foo bar baz foo bar baz interpreted as foo bar baz foo bar baz interpreted as foo bar baz foo ...