非常新的PHP,并且仍然试图围绕正在出现的范围问题。
一些suedo代码:
此文件包含在root用户的index.php中。
的login.php:
require_once("initialize.php");
//Get the $_POST data from the form submission.
//Call on the user object
User::createNewUser($firstName,$lastName,$email1,$password1);
//HTML
<form>signin stuff</form>
initialize.php:
//Define some path defaults for the site.
//Load up some scripts.
require_once("session.php");
require_once("user.php");
//and several others
session.php文件:
class Session...
public $user;
public function login...
$session=new Session()
user.php的:
class User...
public static function authenticate($email,$password){...
$session->login($user); //Here is the problem, $session is not defined.
因此,由于某些原因,$ session未在User-&gt; authenticate中定义,但如果我在class.pp的顶部执行var_dump,则表明它已定义。
这还够继续吗?为什么$ session没有明确定义。
这是我得到的错误 注意:未定义的变量:第55行的D:\ Program Files \ wamp \ www \ site \ application \ controllers \ user.php中的会话
感谢您提供的任何帮助。
答案 0 :(得分:0)
您正在尝试在类方法中使用$ session,该方法只有该方法的局部范围。
php手册涵盖了这一点:http://php.net/manual/en/language.variables.scope.php
您可以做的是将$ session初始化为全局变量,然后您可以在authenticate方法中访问它。
或者,您可以将$ session作为参数传递给authenticate方法。
例如:
->authenticate($email,$password,$session);