2009年2月24日 星期二

Session注意事項2-傳送Class的問題

這一次做了一個嘗試,之前都不曉得session有這麼的神通廣大,發現可以將Class傳入Session中

<?php
sessiont_start();

class SaveSession{
function echoDate(){
echo "God, I can save Class in session.";
}
}

$test = new SaveSession();
$_SESSION['name'] = $test;
?>


我們可以將內容到另外一個頁面來讀取看看


<?php
session_start();

$load = $_SESSION['name'];
echo $load->echoDate();
?>


奇怪怎麼會發現沒有任何東西輸出呢?我們將這個資訊輸出看一下,我們會發現裡面給了一些有趣的訊息:

[__PHP_Incomplete_Class_Name]

原來是因為我們沒有定義這個Class所以沒有辦法得知內部的資料,所以我們可以將剛剛Class SaveSession再這個頁面重新定義一次,也就是include


<?php
sessiont_start();

class SaveSession{
function echoDate(){
echo "God, I can save Class in session.";
}
}

$load = $_SESSION['name'];
echo $load->echoDate();
?>


完成了嗎?輸出的資料還是一樣null,這是為何呢?這是因為我們的Class必須要在session開啟之前就定義,我們將位置交換一下

<?php
class SaveSession{
function echoDate(){
echo "God, I can save Class in session.";
}
}

sessiont_start();

$load = $_SESSION['name'];
echo $load->echoDate();
?>

沒有留言:

張貼留言

Facebook