Mondain
Новичок
Ошибка __PHP_Incomplete_Class
Скрипт выдаёт ошибку:
Класс:
Пример:
Не могу никак решить. В чём проблема?
Скрипт выдаёт ошибку:
PHP:
Catchable fatal error: Object of class __PHP_Incomplete_Class could not be converted to string in C:\WebServer\www\language-class\language.php on line 36
PHP:
<?php
class Language {
public function __construct ($directory, $session = null) {
if (!empty ($directory)) {
if (is_dir ($directory)) {
$this->directory = $directory;
} else {
$this->fatalError ('Language Files folder doesn\'t exist');
}
} else {
$this->directory = '';
}
if (isset ($_GET['setLanguage']) && ($_GET['setLanguage'] != $session)) {
$this->setLanguage (strtolower ($_GET['setLanguage']));
} else {
if (isset ($session)) {
$this->language = $session;
} else {
$accept_language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$prefered_language = explode (',', $accept_language);
$prefered_language = (@eregi ('en-', $prefered_language[0])) ? 'en' : $prefered_language[0];
$this->language = $prefered_language;
}
}
$this->loadLanguageFile ();
}
private function loadLanguageFile () {
if (!isset ($this->language)) {
$this->fatalError ('No language selected');
}
if (!file_exists ($this->directory . $this->language . '.php')) {
if ($this->language != 'en') {
$this->language = 'en';
$this->loadLanguageFile ();
} else {
$this->fatalError ('Languagefile not found:<br />' . $this->directory . $this->language . '.php');
}
} else {
require $this->directory . $this->language . '.php';
if (isset ($array)) {
$this->array = $array;
$this->loaded = true;
} else {
$this->fatalError ('Language file does not contain $array');
}
}
}
public function get ($identifier) {
if (in_array ($identifier, array_keys ($this->array))) {
return $this->array[$identifier];
} else {
return '<span style="color: red">' . $identifier . '</span>';
}
}
public function setLanguage ($lang) {
$this->language = $lang;
$this->loadLanguageFile ();
if (!$this->loaded) {
$this->fatalError ('Language not found');
} else {
$_SESSION['language'] = $lang;
}
}
private function fatalError ($error) {
//ob_get_clean();
echo '<body style="background: #F5F5F5;">
<div style="position: absolute; left: 50%; width: 600px; background: #F9F9F9; margin-left: -300px; border: 1px dashed #76D9EE; padding: 2px;">
<div style="border: 1px solid #AAAAAA; background: #FFFFFF; font: 11px Tahoma; padding: 6px;">
<h3 style="margin: 0; font: 14px Arial; font-weight: bold;">Language: Fatal Error</h3>
' . $error . '
</div>
</div>
</body>';
exit;
}
}
?>
PHP:
<?php
session_start ();
require 'language.php';
$language = new Language ('languages/', $_SESSION['language']);
?>
<html>
<body style="font: 10px Verdana;">
<?php echo $language->get ('say_hello'); ?>
</body>
<br />
<br />
<strong>
Switch language: <a href="?setLanguage=nl">Dutch</a> - <a href="?setLanguage=es">Spanish</a> - <a href="?setLanguage=en">English</a>
</strong>
</html>