관련된 모든 질문을 읽었지만 내 코드에서 버그를 제거하지 못했습니다. 내 코드에서 가능한 오류에 대해 안내해주십시오. 다음 코드를 호출하려고하면 "닫으려고했습니다"대신 Error: Call to undefined method SessionManager::close() in E:\wamp64\www\mjs-cms\private\systemcore\helper\SessionManager.php on line 22
이보고됩니다.왜 내 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을 conufusing하고 있습니다. – yivi
형제 님, 그것은 __get을 통해 작업하는 방법의 잘못된 관찰로 인한 것이지만, $ this-> otherModel-> method()'처럼 작동합니다. –