$cart = new Cart();
$data=$cart->get_item();
print_r($data);

解决方案 »

  1.   

    你最好还是 new  一个实例比较好.
      

  2.   

    能正常就怪了
    class cart {    function get_item()
        {
    if(!empty($_SESSION['cart'])&&is_array($_SESSION['cart']))
    {
        return $_SESSION['cart'];
            }
    else
    {
        $_SESSION['cart']=array();
    return $_SESSION['cart'];
    }
    }}$cart = new cart();
    $data = $cart->get_item();
      

  3.   

    谢谢各位,当然是已经new过了,不然php5能打印出来?是不是php4不能直接在类里操作$_SESSION['cart'],要实例下?
    $cart = new cart();
    $data=$cart->get_item();
    print_r($data);PHP Version 4.3.11,PHP Version 4.4.4 下测试出错,Call to a member function on a non-objectPHP Version 4.4.6, PHP Version 5.1.2 下测试正常,可以打印出print_r($data);
      

  4.   

    Call to a member function on a non-object
    ===========================================
    呼叫空对象的成员函数.
    "non-object",说明对象未实例化,即是没有new过.
      

  5.   

    我估计不是这的错误,查一下页面打开后执行的生成$cart的部分代码。另外注意$_SESSION['cart']的改变。
      

  6.   

    可以直接打印出print_r($_SESSION['cart']);
    calss cart {
    function get_item()
    {
    if(!empty($_SESSION['cart'])&&is_array($_SESSION['cart']))
    {
    return $_SESSION['cart'];
    }
    else
    {
    $_SESSION['cart']=array();
    return $_SESSION['cart'];
    }
    }
    }
    $cart = new cart();
    $data=$cart->get_item();
    但这样就提示Call to a member function on a non-object
    =====================================================
    我一直这么调用的,现在换服务器供应商了,版本是PHP Version 4.3.11,PHP Version 4.4.4就出现这样的错误了. 而且这样session_is_registered('cart') ? $_SESSION['cart'] : null;
    $_SESSION['cart'][$key] = $data[$key];也会出错Warning: Cannot use a scalar value as an array
    只要session_is_registered('cart') ? $_SESSION['cart']=array() : null;
    $_SESSION['cart'][$key] = $data[$key];就可以了,我这么可以给各位高手什么提示了吗?
      

  7.   

    嗯,liyong98847()说的有道理.你检查一下php4下的php.ini里的register_globals是否为off,如果是on的话,$_SESSION['cart']与$cart是等效的.在register_globals=on的情况下:
    ==============================================
    $cart = new cart();//在cart类里改动了$_SESSION['cart']的值,也相当与改了$cart的值
    $data=$cart->get_item();//$cart已经被改动,造成Call to a member function on a non-object你可以换个变量名试试,如果没发生错误,证明就是以上所说的问题
    ====================================================
    $c = new cart();
    $data=$c->get_item();
      

  8.   

    class cart  而不是   calss cart