我收到这个错误
可捕获的致命错误:类 __PHP_Incomplete_Class 的对象无法转换为 user.php 中第 248 行的字符串,这是该行
function loadUser($userID)
{
global $db;
$res = $db->getrow("SELECT * FROM `{$this->dbTable}` WHERE `{$this->tbFields['userID']}` = '".$this->escape($userID)."' LIMIT 1");
if ( !$res )
return false;
$this->userData = $res;
$this->userID = $userID;
$_SESSION[$this->sessionVariable] = $this->userID;
return true;
}
Run Code Online (Sandbox Code Playgroud)
看
var_dump($_SESSION);
array(1) { ["user"]=> &object(__PHP_Incomplete_Class)#1 (12) { ["__PHP_Incomplete_Class_Name"]=> string(11) "jooria_user" ["dbTable"]=> string(5) "users" ["sessionVariable"]=> string(4) "user" } }
Run Code Online (Sandbox Code Playgroud)
这是存储在会话中的对象吗?在从会话中检索对象之前您是否声明了您的类?
无论如何,我的猜测是您在某处缺少类声明。
编辑:您的类jooria_user在使用前未声明。这就是您收到该错误的原因。
假设你有这个:
<?php
session_start();
class A {}
$a = new A;
$_SESSION['A'] = $a;
Run Code Online (Sandbox Code Playgroud)
然后您尝试在此脚本中访问它:
<?php
session_start();
$a = $_SESSION['A'];
var_dump($a);
/* outputs:
object(__PHP_Incomplete_Class)#1 (1) {
["__PHP_Incomplete_Class_Name"]=>
string(1) "A"
}
*/
Run Code Online (Sandbox Code Playgroud)
现在如果你这样做:
<?php
class A {} // declares the class here
session_start();
$a = $_SESSION['A'];
var_dump($a);
/* outputs:
object(A)#1 (1) {
}
*/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9133 次 |
| 最近记录: |