PHP_Incomplete_Class对象/来自print_r的不同响应

时间:2010-12-31 17:03:10

标签: serialization php

当我在本地服务器上发出print_r($ _SESSION)时,我会收到以下内容

Array
(
    [group] => Rich Primosch
    [ok] => 1
    [golfer] => Fritz Davis
    [uniq] => 38
    [fname] => Fritz
    [lname] => Davis
    [hphone] => 352-487-0597
    [cphone] => 352-487-6189
    [email] => fritz@hadleyvillage.org
    [vid] => 527571
    [handicap] => 23
    [admin] => 0
    [page] => signup.php
)

然而,当我在webhost的服务器上发出相同的print_r($ _SESSION)时,我得到了这个回复

阵 (

 [group] => __PHP_Incomplete_Class Object
        (
            [__PHP_Incomplete_Class_Name] => window
            [curdate] => 1293771600
            [datetime] => 1293813211
            [monplay] => 1294030800
            [wedplay] => 1294203600
            [friplay] => 1294376400
            [monclose] => 1293750000
            [wedclose] => 1293922800
            [friclose] => 1294030740
            [monopen] => 1293426000
            [wedopen] => 1293426000
            [friopen] => 1293426000
            [ismonopen] => 
            [iswedopen] => 1
            [isfriopen] => 1
        )

    [ok] => 1
    [golfer] => mysqli_result Object
        (
        )

    [uniq] => 175
    [fname] => Fritz
    [lname] => Davis
    [hphone] => 352-487-0597
    [cphone] => 352-487-6189
    [email] => fritz@hadleyvillage.org
    [vid] => 723234
    [handicap] => 23
    [admin] => 0
    [page] => signup.php
)

为什么我甚至看到不完整的类对象,我不知道。它永远不会分配给$ _SESSION变量,是的,类定义包含在session_start()之前。

两个回复有几个不同之处。我的问题是为什么?某处设置是否存在差异或是否存在编程错误。

我见过许多对PHP_Incomplete_Class对象的引用,但是他们都说确保类定义继续session_start。在我的情况下确实如此,但这应该是无关紧要的,因为我只在一个页面上使用该对象而不将其存储在会话中。

建议表示赞赏。

-dmd -

1 个答案:

答案 0 :(得分:0)

在两台机器上尝试var_dump,它可能会说一些有趣的东西,“组”值似乎是一个对象,是什么类型的?它有一个__sleep()魔术方法吗? 确保您的测试机器和生产服务器具有相同的php版本,以便更好地理解该问题。 @see http://www.php.net/manual/en/language.oop5.serialization.php