php > require_once('System.php');
php > System::users();
PHP Fatal error: Call to undefined method System::users() in php shell code on line 1
這似乎無論從交互式命令行,並從一個簡單的腳本發生:當它是靜態的並且存在時調用未定義的方法?
<?php
require_once('System.php');
var_dump(System::users());
?>
System.php是在PHP包括路徑 - 包括正確:
php > echo (class_exists('System')) ? 'THERE!' : 'WHERE?';
WHERE?
php > require_once('System.php');
php > echo (class_exists('System')) ? 'THERE!' : 'WHERE?';
THERE!
php > System::users();
PHP Fatal error: Call to undefined method System::users() in php shell code on line 1
我很難理解爲什麼它說調用了一個未定義的方法,實際上它是靜態的,它在那裏,應該是可訪問的。
<?php
class System
{
public static function users()
{
$users = array();
if(!$data_array = file('/etc/passwd'))
{
return false;
}
foreach($data_array as $line)
{
$data = explode(":", $line);
$user = array_shift($data);
list(, $uid, $gid, $info, $path, $terminal) = $data;
$tmp = array();
$tmp['uid'] = $uid;
$tmp['gid'] = $gid;
$tmp['name'] = array_shift(explode(',', $info));
$tmp['path'] = $path;
$tmp['terminal'] = $terminal;
$users[$user] = $tmp;
unset($tmp);
}
return $users;
}
public static function user($user)
{
$users = self::users();
if(array_key_exists($user, $users))
{
return $users[$user];
}
else
{
return false;
}
}
}
?>
PHP 5.3.2-1ubuntu4.5用了Suhosin貼片(CLI)(建:2010年9月17日13時49分46秒)
版權所有(C)1997-2009的PHP集團
Zend Engine v2.3.0,版權所有(c)1998-2010 Zend Technologies
確保您包括正確的文件 - 也許在類文件中的某處回聲,看看是否包含回聲。 – BoltClock 2010-11-09 01:50:31