Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Fatal error: Class not found

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не видит класс, чем помочь можно?
ХОТТАБЫЧ
Отправлено: 19 Февраля, 2008 - 16:43:03
Post Id


Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




Извините за, возможно, ламерский вопрос. Ситуация такая:

1. Есть описание класса в файле class1.php

CODE (text):
скопировать код в буфер обмена
  1. <?php class class1 {
  2.   function f1() {
  3.     echo("Hello");
  4.   }
  5. }?>


2. Во втором файле мы подключаем этот файл

CODE (text):
скопировать код в буфер обмена
  1. <?php include_once("class1.php");
  2.   $a = new class1?>


3. В итоге получаем
Fatal error: Class 'class1' not found in бла-бла-бла в строке бла-бла-бла

П.С. Register Globals установлен в Off

(Отредактировано автором: 19 Февраля, 2008 - 16:44:13)

 
 Top
valenok Модератор
Отправлено: 19 Февраля, 2008 - 17:16:23
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




$a = new class1();


-----
Truly yours, Sasha.
 
My status
 Top
ХОТТАБЫЧ
Отправлено: 19 Февраля, 2008 - 22:38:27
Post Id


Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




Увы, ответ не правильный! Огорчение
 
 Top
evgenijj
Отправлено: 19 Февраля, 2008 - 23:18:59
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Создал два файла:
class1.php
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. class class1 {
  4.   function f1() {
  5.    echo ("Hello");
  6.   }
  7. }
  8. ?>
  9.  

index.php
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. include_once ("class1.php");
  4. $a = new class1;
  5. $a->f1();
  6. ?>
  7.  

Результат

Что я не так делаю?
 
 Top
valenok Модератор
Отправлено: 20 Февраля, 2008 - 06:14:53
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




тогда у вас не вызывается файл class1.php
Включите оповещение об ошибках.


-----
Truly yours, Sasha.
 
My status
 Top
LukS
Отправлено: 20 Февраля, 2008 - 17:38:57
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. class TEST {
  4. function func1() {
  5. echo ("Hello");
  6. return false;
  7. }
  8. }
  9. ?>
  10.  

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include("test.php");
  4. $test = new TEST;
  5. $test->func1();
  6. ?>
  7.  

Все должно работать. Если не работает - проверьте конфигурацию php или обратитесь к хостеру.
 
 Top
ХОТТАБЫЧ
Отправлено: 21 Февраля, 2008 - 15:55:35
Post Id


Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




valenok пишет:
тогда у вас не вызывается файл class1.php
Включите оповещение об ошибках.


Вы АБСОЛЮТНО правы! Не вызывался файл.

П.С. Можете порекомендовать инфу как правильно формировать ссылки на файлы?

Например файл index.php лежит в корне, файл class1.php лежит в папке CLS1, файл class2.php лежит в папке CLS2... могу ли я обратиться вот так:

CODE (text):
скопировать код в буфер обмена
  1. <?php // it's file: /CLS2/class2.php
  2.  
  3. include_once("../CLS1/class1.php");
  4. ...
  5. ?>


CODE (text):
скопировать код в буфер обмена
  1. <?php // it's file: index.php
  2.  
  3. include_once("/CLS2/class2.php");
  4. ...
  5. ?>

(Добавление)
Или правильнее формировать ссылки на файлы с использованием имени сайта? Например вот так:

CODE (text):
скопировать код в буфер обмена
  1. "http://".$HTTP_SERVER_VARS['HTTP_HOST']."/CLS1/class1.php";
 
 Top
evgenijj
Отправлено: 21 Февраля, 2008 - 16:23:52
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




ХОТТАБЫЧ пишет:
Можете порекомендовать инфу как правильно формировать ссылки на файлы?
..........................
Или правильнее формировать ссылки на файлы с использованием имени сайта?


http://phpfaq[dot]ru/all#paths
 
 Top
ХОТТАБЫЧ
Отправлено: 21 Февраля, 2008 - 20:53:18
Post Id


Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




evgenijj

Спасибо Улыбка

правильный ответ:

CODE (text):
скопировать код в буфер обмена
  1. $document_root = $HTTP_SERVER_VARS['DOCUMENT_ROOT'];
  2. include_once("$document_root/CLS1/class1.php");

(Отредактировано автором: 21 Февраля, 2008 - 20:53:52)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB