php7 修改的函式

2021-09-10 19:03:52 字數 911 閱讀 9800

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 ...