Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Require (include) внутри определения класса. Возможно ли?
 
 автор: targa   (15.03.2006 в 07:45)   письмо автору
 
 

Можно ли инклудить файл внутри определения класса?
Т.е.
есть такой вот класс

class SomeClass
{
    function metod1()
    {
        // определение метода
    }
    
    function metod2()
    {
        // очень длинный метод, т.е. много строк
    }
}


metod2, к примеру очень длинный, и я хочу выбросить его в отдельный файл. Т.е. сделать вот так:

class SomeClass
{
    function metod1()
    {
        // определение метода
    }
    
require("metod2.php");
}

А внутри metod2.php, только

<?php
function metod2()
{
    
// очень длинный метод
}
?>


Но в ответ получаю ошибку. Можно ли сделать так или нет (в php такое невозможно)?
Я уже и <?php ?> убирал в metod2.php, и в txt его переименовывал, и include и require пробовал - не получается :(

   
 
 автор: Artemy   (15.03.2006 в 11:09)   письмо автору
 
   для: targa   (15.03.2006 в 07:45)
 

Помоему можно подключать только в самом методе.
Не понятно зачем выносить метод в отдельный файл. Ведь по идеи в одном файле должен быть один класс. Что такой объемный класс получается?

   
 
 автор: Trianon   (15.03.2006 в 11:21)   письмо автору
 
   для: targa   (15.03.2006 в 07:45)
 

Из мануала:
Вы НЕ имеете права разбивать определение класса на несколько файлов.
Также Вы НЕ имеете права разбивать определение класса на несколько PHP-блоков, кроме случаев, когда разрыв блока находится в определении метода.

Этот код работать не будет:
<?php
class test {
?>
<?php
   
function test() {
       print 
'OK';
   }
}
?> 


В то время, как этот - допустим:
<?php
class test {
   function 
test() {
       
?>
        <?php
       
print 'OK';
   }
}
?> 

   
 
 автор: targa   (16.03.2006 в 02:04)   письмо автору
 
   для: Trianon   (15.03.2006 в 11:21)
 

>>Вы НЕ имеете права
>>Также Вы НЕ имеете права
Сразу вспоминается УК :)
Спасибо за ответ.

2 Artemy
Да к сожалению длинноват. Можно конечно вынести часть кода во внеклассовую функцию, но не хочется.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования