Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Не работают классы

Сообщения:  [1-10] 

 
 автор: ChieFSS   (06.12.2006 в 18:00)   письмо автору
 
   для: targa   (06.12.2006 в 17:45)
 

А от нескольких чтобы наследовался нельзя да?
Можешь дать примерное описание какие классы и куда можно наследовать? Мнебы просто понять как сайт можно с помощью наследований оформить.

   
 
 автор: targa   (06.12.2006 в 17:45)   письмо автору
 
   для: ChieFSS   (06.12.2006 в 17:17)
 

>>мне же надо чтобы там код был с другими классами. можно класс в классе создавать?
Классы можно наследовать.
Можно внутри класса создавать и использовать экземпляры других классов.
У меня класс создающий странички использует классы для работы с БД и RSS.

   
 
 автор: ChieFSS   (06.12.2006 в 17:17)   письмо автору
 
   для: targa   (06.12.2006 в 17:09)
 

Я вот уже стараюсь до чего-нибудь добраться..
Как выводить я понял, а про наследование.. ведь наследование может быть только в одну сторону и может быть только один родительский класс да?
Вот допустим функция

function show_footer()    //
    {
        echo 'подвал';
    }

не будет выводить мне просто подвал тут ->
мне же надо чтобы там код был с другими классами. можно класс в классе создавать?

   
 
 автор: targa   (06.12.2006 в 17:09)   письмо автору
 
   для: ChieFSS   (06.12.2006 в 16:48)
 

Зачем? Один класс на все.


class VisualBase
{
    function show_header()    //
    {
        echo 'заголовок';
    }

    function show_content()    //
    {
        echo 'контент';
    }

    function show_footer()    //
    {
        echo 'подвал';
    }

    function show_menu()    //
    {
        echo 'меню1 меню2';
    }
}


Потом

$DESIGN = new VisualBase();

и где нужно меню например пишете
$DESIGN->show_menu();
где нужно шапку вывести
$DESIGN->show_header();

Вот когда доберетесь до наследования классов и разберетесь Вам понравится :)

   
 
 автор: ChieFSS   (06.12.2006 в 16:51)   письмо автору
 
   для: targa   (06.12.2006 в 16:45)
 

targa, первый способ немного не понял. почему echo находится где-то в конце?
а насчет второго у меня же echo написано. значит по идеи он должен вывести на экран слово hello в отдельной колонке или не так?

   
 
 автор: ChieFSS   (06.12.2006 в 16:48)   письмо автору
 
   для: ChieFSS   (06.12.2006 в 15:47)
 

Я вот никак не могу вообразить себе как это сделать..
Я сайт разделил на 4 части (шапка, меню, основное окно и низ). Как я понял для каждой части должен быть свой класс, но как это написать кодом =\
В классе допустим design_head будет не только функция show, а ещё же надо написать скрипт для генерации текстов и прочего наполнения

   
 
 автор: targa   (06.12.2006 в 16:45)   письмо автору
 
   для: ChieFSS   (06.12.2006 в 16:10)
 


$DESIGN_HEAD = & new design_head();

А зачем & ?

Ну тут мне кажется проблема в том что вы выводите результат который возвращает метод show
А он ничего не возвращает - пустоту.
Поэтому или


<?php 
require_once('includes/config.php'); 
require_once(
'includes/class_main.php'); 

$DESIGN_HEAD = & new design_head(); 

echo 

<html> 
<head><title>"
.$SITE_NAME."</title> 
<link rel=stylesheet type=text/css href=includes/main.css> 
</head> 
<body> 

 <table border=1 width=100% height=150 cellpadding=0 cellspacing=0> 
  <tr> 
   <td colspan=2>"
;
   
$DESIGN_HEAD -> show().
  echo 
"</td> 
  </tr> 
  <tr> 
   <td>2</td> 
   <td>3</td> 
  </tr> 
  <tr> 
   <td colspan=2>4</td> 
  </tr> 
 </table> 

</body> 
</html> 
"

?>


Или метод show по-другому описывайте. В данном случае так:

<? 
 
class design_head

 function 
show()

  return  
"hello"
 } 

?>

   
 
 автор: ChieFSS   (06.12.2006 в 16:10)   письмо автору
 
   для: targa   (06.12.2006 в 16:04)
 

Ой.. да я echo случайно из кода удалил в теме
Вообще вот полная страница index.php

<?php
require_once('includes/config.php');
require_once(
'includes/class_main.php');

$DESIGN_HEAD = & new design_head();

echo 
"
<html>
<head><title>"
.$SITE_NAME."</title>
<link rel=stylesheet type=text/css href=includes/main.css>
</head>
<body>

 <table border=1 width=100% height=150 cellpadding=0 cellspacing=0>
  <tr>
   <td colspan=2>"
.$DESIGN_HEAD -> show()."</td>
  </tr>
  <tr>
   <td>2</td>
   <td>3</td>
  </tr>
  <tr>
   <td colspan=2>4</td>
  </tr>
 </table>

</body>
</html>
"
;
?>

   
 
 автор: targa   (06.12.2006 в 16:04)   письмо автору
 
   для: ChieFSS   (06.12.2006 в 15:47)
 

А первый код (index.php) ошибок не вызывает?
Он по идее должен выглядеть так


<? 
require_once('includes/class_main.php'); 
$DESIGN_HEAD = new design_head(); 
 echo 
"<table border=1 width=100% height=150 cellpadding=0 cellspacing=0> 
  <tr> 
   <td>"
.$DESIGN_HEAD -> show()."</td> 
  </tr> 
 </table>"
;
?>

   
 
 автор: ChieFSS   (06.12.2006 в 15:47)   письмо автору
 
 

Вот такой код, но почему то не работает:
1 файл (index.php):

<?
require_once('includes/class_main.php');
$DESIGN_HEAD = & new design_head();
 <
table border=1 width=100height=150 cellpadding=0 cellspacing=0>
  <
tr>
   <
td>".$DESIGN_HEAD -> show()."</td>
  </
tr>
 </
table>
?>

2 файл (class_main.php):

<?
class design_head {
function 
show() {
 echo 
"hello";
 }
}
?>

Не понимаю почему если открыть index.php слово hello выводится не в таблице, а за рамками. хотя написано внутри таблицы и тэгов

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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