次の内容のindex.phpがあります。
include_once('includes/auth.php');
include_once('classes/class.DatabaseQuery.php');
include_once('classes/class.Project.php');
include_once('classes/class.User.php');
$project = new Project();
$user = new User();
// HTML, HEAD, BODY
$usergroup = $user->getUserGroup($_SESSION['user']);
// ...
したがって、必要なすべてのクラスを index.php に含めます。このファイルにクラスのインスタンスも作成します。次に、クラス ファイル (例: class.Project )を作成します。
class Project {
private $db;
private $evaluation;
public function __construct($id=null){
$this->setPreferences();
}
private function setPreferences() {
$this->db = new DatabaseQuery();
$this->evaluation = new Evaluation();
}
public function getSomething(){
if($this->evaluation->checkSomething(1)){
echo "test";
}
}
// ...
}
これらのファイルで、他のクラスをプライベート変数として宣言します。他のクラスのメソッドにアクセスするより。
他のクラスでのプライベート変数の組み込みと使用に問題はありますか?
今、私は奇妙な問題を抱えています。$_SESSION['user']
プライベート変数に値を書き込むと、user
上書きされます。セッションに何かを書き込む前に、セッション値はすでに入力されています。ここに私のlogin.phpがあります:
include_once('classes/class.User.php');
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
$user = new User();
if ($user->checkLoginData($username, $password)) {
$_SESSION['userID'] = $user->getUserIDForName($username);
// it is an object
var_dump($user);
$_SESSION['user'] = $username;
// it is a string
var_dump($user);
// ...
}
$_SESSION['user']=$username
ローカル変数の内容を変更するにはどうすればよい$user
ですか? おそらく、あなたは私が間違っていることについていくつかの考えを持っています。