gpt4 book ai didi

php - 强制访问 __PHP_Incomplete_Class 对象属性

转载 作者:IT王子 更新时间:2023-10-29 01:09:34 25 4
gpt4 key购买 nike

我正在为 php cms 编写一个模块。在函数(回调)中,我可以访问来自框架代码的对象。

这个对象的类型是__PHP_Incomplete_Class,因为在 session 开始之前没有包含所需的头文件。如果不破解核心 cms 代码,我就无法包含它。

我想知道是否可以访问对象属性(强制转换为数组不起作用)。我问这个是因为我可以用 var_dump() 看到值,但使用 $object->var 我总是得到空值。

最佳答案

当您取消序列化尚未包含的类的对象时,会附加此问题。例如,如果你在包含类之前调用​​ session_start。

无法直接访问 PHPIncompleteClass 对象,但可以使用 foreach、serialize 和 gettype。使用 PHPIncompleteClass 对象调用 is_object 将导致 false。

因此,如果您在 session 中找到一个“__PHP_Incomplete_Class”对象,并且在 session_load 之后包含了您的类,则可以使用此函数:

function fixObject (&$object)
{
if (!is_object ($object) && gettype ($object) == 'object')
return ($object = unserialize (serialize ($object)));
return $object;
}

这将产生一个可用的对象:

fixObject($_SESSION['member']);

关于php - 强制访问 __PHP_Incomplete_Class 对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/965611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com