Я прочитал все связанные вопросы, но не смог удалить ошибку из моего кода. Сообщите мне о возможной ошибке в моем коде. Когда я пытаюсь вызвать следующий код, он сообщает Error: Call to undefined method SessionManager::close() in E:\wamp64\www\mjs-cms\private\systemcore\helper\SessionManager.php on line 22
вместо того, чтобы «пытаться вызвать close».Почему мой getter (__get) не вызывается в PHP-классе?
Заранее спасибо.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class SessionManager{
public function __construct() {
session_start();
}
public function is_exist($a){
return isset($_SESSION["system".$a]);
}
public function add($a,$b){
$_SESSION["system".$a]=$b;
}
public function addCookies($a,$b){
setcookie($a, $b, time() + (86400 * 30), "/"); // 86400 = 1 day
}
public function sessionKey(){
return session_id();
}
public function value($k){
if(!isset($_SESSION[$k]))
$this->close("SESSION_NOT_DEFINED".__LINE__);
return $_SESSION[$k];
}
public function __get($key)
{
echo "tried to call $key";
return get_instance()->$key;
}
}
Вы являетесь владельцем __get и __call – yivi
Да, братец, это связано с неправильным наблюдением методов, работающих через __get, но они работали, как этот '$ this-> otherModel-> method()'. –