我目前正在爲一個客戶端的大型項目工作,並幫助簡化事情並使管理會話更容易我已經創建了一個會話類,這意味着如果我不斷改變我管理會話的方式我可以在一個文件中訪問會話的結構,而不是多個會話已被回顯的文件(例如用戶名或當前頁)未定義的屬性和未定義的索引當從另一個類中引用類時
我的班級有3種類型函數設置器,getter和unsetter這是一種自我解釋。
現在在這個實例中,我直接給會話類設置一條錯誤消息,然後從另一個類中調用一個函數的錯誤消息。
下面是我的文件顯示的代碼,我覺得精簡版本是培訓相關
c_session.php
class session {
private $instance = 'isntname';
private $A_user = 'user';
private $A_page = 'page';
private $A_message = 'message';
//Set messages to the session.
public function set_message($type, $value) {
$_SESSION[$this->instance][$this->A_message][$type] = $value;
}
//Get messages from the session.
public function get_message() {
return $_SESSION[$this->instance][$this->A_message];
}
//Unset messages from the session.
public function unset_message() {
#unset($_SESSION[$this->instance][$this->A_message]);
}
}
c_operations.php
class operations {
//Display all pending messages.
public function display_pending_messages() {
if(session::get_message() != null) {
foreach(session::get_message() as $type => $value) {
if(strlen($type) != null) {
echo '
<div class="panel ' . $type . '">
' . $value . '
<span class="close" onclick="hide_parent_element(this);">X</span>
</div>
';
}
}
session::unset_message();
}
}
}
使用example.php
$session->set_message('confirm', 'THIS IS A CONFIRM');
$session->set_message('error', 'THIS IS AN ERROR');
$session->set_message('notice', 'THIS IS A NOTICE');
$session->set_message('warning', 'THIS IS A WARNING');
var_dump($_SESSION);
$operation->display_pending_messages();
個錯誤/告示等收到
Notice: Undefined property: operations::$instance in /var/www/_classes/parent_session.php on line 43
Notice: Undefined property: operations::$A_message in /var/www/_classes/parent_session.php on line 43
Notice: Undefined index: in /var/www/_classes/parent_session.php on line 43
43號線是指線return $_SESSION[$this->instance][$this->A_message];
現在,如果我通過$session->get_message()
它工作正常,但通過其他功能會在這種情況下$operation->display_pending_messages()
它返回調用get_message()
和unset_message()
直接以上錯誤。顯然這與$this->
運營商有關,但我不知道該怎麼做才能制止這種情況。我嘗試了各種搜索,並發現類似的東西,但在這種情況下沒有幫助。
有人可以請解釋我出錯的地方以及如何解決這個問題嗎?
在此先感謝。