Доброго времени суток! я столкнулся с такой проблемой: у меня есть три класса запускается цикл в котором созданются экземпляры этих классов после этого появляются непонятные точки или символы, помогите разобраться!
код после которого происходит это следующий PHP: ... foreach($this->param['class'] as $key => $value){ $this->param['obj'][$key] = new $key; } .... после этого происходит появление символов
вот кусок кода который происходит при просмотре исходного кода страницы HTML: init Object ( [param] => Array ( [conect_bases] => Array ( [user] => root [pass] => pasword [base] => system [host] => localhost [DB_CHARSET] => utf8 ) что это за первые три символа???? как их убрать и почему они появляются???
Это не ВОМ. Вот ВОМ: 0xEF, 0xBB, 0xBF Копай в конструктор класса. По всей видимости ты что-то там выводишь на страницу
код index.php PHP: <?php error_reporting('E_ALL'); ini_set('display_errors', true); session_start(); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate( "D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); include_once ('includes/kernel.inc'); $t = new kernel(); $t->LoadOptions(); $t->LoadModul(); print_r($t); ?> Код файла kernel.inc PHP: <?php include_once ('./config/init.inc'); class kernel{ private $param; public function __set($index,$value){ return $this->param[$index] = $value; } public function __get($index){ return $this->param[$index]; } public function __isset($index){ return isset($this->param[$index]); } public function __unset($index) { unset($this->param[$index]); } public function __construct(){ $this->param = array(); $this->param = parse_ini_file('./config/config.ini',true); $this->__set('db',new database($this->param['bases_conect'])); if(ini_get('register_globals')) { foreach ($this->param['array_global'] as $key => $value) { if (!isset($this->param['array_global'][$key])) { unset($GLOBALS[$key]); } } } if (strstr($_SERVER['REQUEST_URI'], "&")){ $arr_pages = trim($_SERVER['REQUEST_URI'], "/"); $pages = explode("&", $arr_pages); $this->param['path']['pages'] = $pages[1]; } if(isset($_GET[$this->param['constant']['default_name_get']])){ $arr_path = trim($_GET[$this->param['constant']['default_name_get']], "/"); $this->param['path']['all'] = $arr_path; $this->param['path']['get'] = explode("/", $arr_path); }else{ $this->param['path']['get'] = explode("/", $this->param['constant']['default_get']); $this->param['path']['all'] = $this->param['constant']['default_get']; } if(count($_POST) !== 0){ foreach ($_POST as $key => $value){ $this->param['path']['post'][$key] = $value; } }else{ $this->param['path']['post'][$this->param['constant']['default_name_post']] = $this->param['constant']['default_post']; } } public function LoadOptions(){ $result = $this->db->getWhere( array('variabl'), null,null,null,null); for($n=0; $n < count($result); $n++){ $this->param['options'][$result[$n]['name']] = unserialize($result[$n]['value']); } $this->param['options']['session'] = session_id(); //и так далее другие опции } public function LoadModul(){ $result = $this->db->getWhere( array('module'), null,null, array('status'=>1), null ); for($n=0; $n < count($result); $n++){ unset($result[$n]['status']); $this->param['module'][$result[$n]['name']] = $result[$n]; unset($this->param['module'][$result[$n]['name']]['name']); } foreach($this->param['module'] as $key => $value){ $this->__set($key, new $key()); // вот в этом месте появляются вот эти непонятные символы при print_r($t); } } } ?> помогите пожалуйста, я уже над этим корплю 4 день))))))
В скриптах динамически образуемых экземляров класса нет ничего осебенного при необходимости могу закинуть и код подключаемых классов!!!
можно сделать проще. ставишь в скрипте в самом начале die(), запускаешь и смотришь, если ли эти символы. потом ставишь die() в первую вызываемую функцию и так далее, пока не появятся символы. за 4 дня можно перебрать все функции и найти место, в котором появляются символы.
Редактор накосячил: - Zero width no-break space. Keep a word from breaking at that point (works as designed in IE6/Win)