可能重复:
Call to a member function on a non-object - works localhost but not online
不知道如何解决这个问题,它的基本但无法找到解决方案。 我使用两个文件:connect.php和user.php。
connect.php中的是一个Connect类:
class Connect{
var $logged;
function login($username, $password){
..more code..
if($pass==$password){
$this->logged=true; // db connection is fine, this works
// checked it with echo $this->logged;
}
}
}
当我从另一个文件中调用它时,user.php就像这样:
$user=new Connect;
$user->login();
echo $user->logged; // ERROR Trying to get property of non-object
为什么这段代码不起作用,但它可以离线(本地)???
答案 0 :(得分:2)
你有几个问题:
$user->login
时,PHP假设您正在访问对象属性,而不是函数;您需要$user->login()
(请注意()
),这将调用该方法。}
。<强>演示:强>
<?php
class Connect{
var $logged;
function login($username, $password){
$pass = 'test';
if($pass == $password){
$this->logged = true;
}
}
}
$user = new Connect;
$user->login('test','test');
print_r($user);
?>
<强>输出:强>
Connect Object
(
[logged] => 1
)
1
是true
打印的内容。
答案 1 :(得分:0)
要从类外部访问类属性,您需要将其声明为“public”:
class Connect{
public $logged;