導航:首頁 > 編程語言 > phpstdclassarray

phpstdclassarray

發布時間:2023-09-18 03:00:42

『壹』 php 數組序列化

mixed unserialize ( string str [, string callback] )

unserialize() 對單一的已序列化的變數進行操作,將其轉換回 PHP 的值。返回的是轉換之後的值,可為 integer、float、string、array 或 object。如果傳遞的字元串不可解序列化,則返回 FALSE。

unserialize_callback_func 指令: 如果在解序列化的時候需要實例化一個未定義類,則可以設置回調函數以供調用(以免得到的是不完整的 object 「__PHP_Incomplete_Class」)。可通過 php.ini、ini_set() 或 .htaccess 定義『unserialize_callback_func』。每次實例化一個未定義類時它都會被調用。若要禁止這個特性,只需置空此設定。還需要注意的是 unserialize_callback_func 指令是從 PHP 4.2.0 開始提供使用的。

若被解序列化的變數是一個對象,在成功地重新構造對象之後,PHP 會自動地試圖去調用 __wakeup() 成員函數(如果存在的話)。 例子 1. unserialize_callback_func 示例

<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

// unserialize_callback_func 從 PHP 4.2.0 起可用
ini_set('unserialize_callback_func','mycallback'); // 設置您的回調函數

function mycallback($classname) {
// 只需包含含有類定義的文件
// $classname 指出需要的是哪一個類
}
?>

<?php
// 這里,我們使用 unserialize() 裝載來自資料庫的 $session_data 數組中的會話數據。
// 此例是描述 serialize() 的那個例子的補充。

$conn = odbc_connect ("webdb", "php", "chicken");
$stmt = odbc_prepare ($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array ($PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata) || !odbc_fetch_into ($stmt, &$tmp)) {
// 如果執行出錯或返回錯誤,則初始化為空數組
$session_data = array();
} else {
// 現在我們需要的是 $tmp[0] 中已序列化的數據。
$session_data = unserialize ($tmp[0]);
if (!is_array ($session_data)) {
// 出錯,初始化為空數組
$session_data = array();
}
}
?>

『貳』 PHP的stdClass類詳解及幾種數組對象轉換方法

一、stdClass數組轉對象

$arr=array();
$arr['a']=1;
$arr['b']=2;
$arr['c']=3;

$object=newstdClass;
foreach($arras$key=>$value){
$object->$key=$value;
}

var_mp($object);

結果輸出如下:

object(stdClass)#1(3){
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(3)
}

二、對象轉數組

functionobject_to_array($obj)
{
$_arr=is_object($obj)?get_object_vars($obj):$obj;
foreach($_arras$key=>$val)
{
$val=(is_array($val)||is_object($val))?object_to_array($val):$val;
$arr[$key]=$val;
}
return$arr;
}

三、ArrayObject方法數組轉對象

$arr=array('key1'=>'test1','key2'=>'test2');

var_mp(newArrayObject($arr));

結果輸出如下:

object(ArrayObject)#1(1){
["storage":"ArrayObject":private]=>
array(2){
["key1"]=>
string(5)"test1"
["key2"]=>
string(5)"test2"
}
}

『叄』 php中的對象分為哪兩種

得到一個對象的類型,使用gettype()函數:
<?php
echo gettype(1); // 輸出integer
echo gettype(array()); // 輸出array
得到一個對象是哪個類的實例,使用get_class()函數:
<?php
$o = new stdClass();
echo get_class(); // 輸出stdClass

得到一個類或對象的方法和屬性,要使用反射:
<?php
class MyClass {
public $var;
public function foo() {}
}
$ref = new ReflectionClass('MyClass');
$ref->getProperties(); // 會返回一組對象,用法參考PHP手冊
$ref->getMethods(); // 會返回一組對象,用法參考PHP手冊

$obj = new MyClass();
$ref = new ReflectionObject($obj);
$ref->getProperties();
$ref->getMethods();

閱讀全文

與phpstdclassarray相關的資料

熱點內容
linuxyum安裝java 瀏覽:248
java數字計算 瀏覽:283
java按鈕文字 瀏覽:639
python列表互換位置 瀏覽:337
sw怎麼刪除定向命令 瀏覽:757
php包含數組元素 瀏覽:666
安卓系統開發app需要什麼 瀏覽:730
ssh2項目源碼 瀏覽:288
三星提供了什麼伺服器地址 瀏覽:903
阿里雲輕量應用伺服器60元 瀏覽:160
微信公眾號支付java 瀏覽:217
蝦皮用的什麼伺服器 瀏覽:144
拍照的app哪個好用 瀏覽:890
方舟編譯器2022 瀏覽:770
一般情況下源碼注釋量 瀏覽:743
18號命令 瀏覽:871
我的世界如何將材質包加在伺服器里 瀏覽:413
縫紉pdf 瀏覽:408
軟硬體系統演算法 瀏覽:121
源碼名片哪家好 瀏覽:374