我有這個類有一個函數來加載其他類和創建實例。session_start()導致一個對象變成非對象
,如果你使用這個類是這樣的:
$test = new test();
$test->load("email");
它完美的作品如預期 但使用時在session_start();
$test = new test();
session_start();
$test->load("email");
被創建了一個錯誤,沒有別的有: PHP致命錯誤:調用一個成員函數負載()一個非對象在唧唧歪歪
類與在session_start使用:
<?php
class test
{
function load($class){
static $objects = array();
if (isset($objects[$class]))
{
return $objects[$class];
}
require('libraries/'.$class.'.php');
$name = 'ext_'.$class;
$objects[$class] =& new $name();
$this->$class = $objects[$class];
return $objects[$class];
}
}
$test = new test();
session_start();
$test->load("email");
?>
,這裏是庫/ email.php:
<?php
class ext_email
{
function ext_email(){
echo "email is working";
}
}
?>
CA ñ你請指教這是什麼問題?一種改善負載功能的方法? 這個東西適用於某些Apache的安裝,並且無法在其他工作。取決於一些配置,我不知道究竟是什麼。
我想要能夠做到以下幾點: $ test = new test();
session_start();
$test->load("email");
感謝很多提前
有趣的是,作爲一個解決方案,你不能只將'session_start'調用放在代碼的絕對頂部嗎? – 2010-03-09 19:00:57
我的工作很好。也許你應該在調用'session_start()'之前和之後在'$ test'上嘗試'var_dump'來看看有什麼變化。 – 2010-03-09 19:03:16
不,我不能移動session_start(),即使我將session_start移動到頂端,也總是相同的 – 2010-03-09 19:07:04