За последние 24 часа нас посетили 54316 программистов и 1776 роботов. Сейчас ищут 950 программистов ...

Функция

Тема в разделе "Прочие вопросы по PHP", создана пользователем ExDragon, 31 мар 2011.

  1. ExDragon

    ExDragon Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    76
    Симпатии:
    0
    Код (Text):
    1. function Func($test)
    2. {
    3.     echo $test;
    4. }
    5. function Cont()
    6. {
    7.     return 1;
    8. }
    предположим есть такая структура.. нужно
    Код (Text):
    1. Func(Cont() Cont());
    Причём получится должно 11, как так сделать?
    я сделал
    Код (Text):
    1. Func(Cont().Cont());
    Заработало! но только в больших структура не работает.. когда добавляется if например, как это обойти?
    Код (Text):
    1. Func(Cont() if(Cont() == 1){Cont()});
     
  2. ExDragon

    ExDragon Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    76
    Симпатии:
    0
    Я сделал так..
    Код (Text):
    1. function Func($test)
    2. {
    3.     echo $test;
    4. }
    5. function Cont()
    6. {
    7.     return 1;
    8. }
    9. if(Cont() == 1){
    10.     $ts = Cont().Cont();
    11. }
    12. Func(Cont().$ts);
    и ура! -> 111! но вот проблема
    Если я сделаю так
    Код (Text):
    1. $content = $sys->TableTR('bgcolor="FF8040"', $sys->TableTD('colspan = "4"', '<center><h4>У вас нет ни одного персонажа</h4></center>'));
    то она на пишется, как сделать чтобы она не писалась... ну она выводится на экран..
     
  3. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    ExDragon
    на первый взгляд - монолог полоумного. но если внимательно вглядеться, то можно увидеть зачатки разума :)
    говоря проще, объясни по человечески, а то
    вообще с потолка свалилось
     
  4. ExDragon

    ExDragon Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    76
    Симпатии:
    0
    Gromo
    точняк, похожи =)
    на самом деля я привёл пример..
    а $sys->TableTR это уже я делаю просто для наглядности показал что мне нужно..
    я делаю хм генератор таблиц =) (я не сумасшедший=))
    Код (Text):
    1.     function  Table($set, $content)
    2.     {
    3.         echo '<table '.$set.'>'.$content.'</table>';
    4.     }
    5.     function  TableTD($set, $content)
    6.     {
    7.         return '<td '.$set.'>'.$content.'</td>';
    8.     }
    9.     function  TableTR($set, $body)
    10.     {
    11.         return '<tr '.$set.'>'.$body.'</tr>';
    12.     }
    Код (Text):
    1. $sys->Table('align="center" class="Block"',
    2.     //Первая строка
    3.     $sys->TableTR('bgcolor="FF8000"', $sys->TableTD('colspan = "4"', '<center><h2>Ваши персонажи</h2></center>'))
    4.     //Вторая строка
    5.     .$sys->TableTR('bgcolor="FF8040"',
    6.         //Ячейка имя
    7.         $sys->TableTD('width = "130"', '<center><b>Имя</b></center>')
    8.         //Ячейка инфа
    9.         .$sys->TableTD('', '<center><b>Инфа</b></center>')
    10.         //Ячейка Уровень
    11.         .$sys->TableTD('width = "75"', '<center><b>Уровень</b></center>')
    12.         //Ячейка Деньги
    13.         .$sys->TableTD('', '<center><b>Деньги</b></center>'))
    14.     //Третья строка
    15.     .$content
    16. //Конец тоблиции
    17. );
    а мне нужно выполнить проверку и заполнить таблицу..
    Код (Text):
    1.     if (!mysql_num_rows($query) == NULL){
    2.         //Чары есть, пакозать..
    3.         while ($userchar = mysql_fetch_assoc($query)){
    4.             //Создаём третью страку с чарами
    5.             $content = $sys->TableTR('bgcolor="FF8040"',
    6.                 $sys->TableTD('', '<center><a href = "http://'.$_SERVER['HTTP_HOST'].'/'.$armory_dir.'/?player='.$userchar['guid'].'" target = "_blank">'.$userchar['name'].'</a></center>')
    7.                 .$sys->TableTD('',
    8.                     $sys->getFlag($userchar['race'])
    9.                     .$sys->getRace($userchar['race'], $userchar['gender'])
    10.                     .$sys->getClass($userchar['class']))
    11.                     .$sys->TableTD('', '<center><h4>'.$userchar["level"].'</h4></center>')
    12.                 .$sys->TableTD('', $sys->getMoney($userchar['money'])));
    13.         }
    14.     //Нету, тогда сообщаем об этом
    15.     } else {
    16.         //Создаём третью страку
    17.         $content = $sys->TableTR('bgcolor="FF8040"', $sys->TableTD('colspan = "4"', '<center><h4>У вас нет ни одного персонажа</h4></center>'));
    18.     }
    отображается как то не так =( что не так?
     
  5. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    ExDragon
    Тут лучше применять ООП:

    PHP:
    1. <?php
    2.  
    3. class Table {
    4.  
    5.   private $options = false;
    6.   private $rows = array();
    7.  
    8.   public function __construct($options = false){
    9.     $this->options = $options;
    10.   }
    11.  
    12.   public function appendRow($options = false){
    13.     $row = new TableRow($options);
    14.     $this->rows[] = $row;
    15.     return $row;
    16.   }
    17.  
    18.   public function getHTML(){
    19.     $output = $this->options ? '<table '.$this->options.'>' : '<table>';
    20.     foreach($this->rows as $row){
    21.       $output .= $row->getHTML();
    22.     }
    23.     return $output.'</table>';
    24.   }
    25. }
    26.  
    27. class TableRow {
    28.  
    29.   private $options = false;
    30.   private $cells = array();
    31.  
    32.   public function __construct($options = false){
    33.     $this->options = $options;
    34.   }
    35.  
    36.   public function appendCell($content, $options = false){
    37.     $cell = $options ? '<td '.$options.'>' : '<td>';
    38.     $this->cells[] = $cell.$content.'</td>';
    39.     return $this;
    40.   }
    41.  
    42.   public function getHTML(){
    43.     $output = $this->options ? '<tr '.$this->options.'>' : '<tr>';
    44.     $output .= implode($this->cells).'</tr>';
    45.     return $output;
    46.   }
    47. }
    48.  
    49.  
    50. $table = new Table();
    51. $table->appendRow()->appendCell('a')->appendCell('b');
    52. $table->appendRow()->appendCell('c', 'style="border: solid 1px blue;"')->appendCell('d');
    53. echo $table->getHTML();
    54.  
    55. ?>
    так вот вроде проще будет. вариантов много, ООП рулит :)
     
  6. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    ExDragon
    Ответь на вопрос: какую задачу ты пытаешься решить?
    Без кода, опиши задачу нормальным языком.
     
  7. ExDragon

    ExDragon Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    76
    Симпатии:
    0
    подскажите мануал про ООП чтобы на русском и побольше примеров.. кроме php.su
     
  8. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Котеров - основы ООП :)
     
  9. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    у тебя что долгосрочный контакт с котеровым?)) А то аж не интересно литературу с тебя клянчить.
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    капец

    циклы придумали трусы!
     
  11. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Апельсин
    ну блин, тащусь я от его книжки. чё пристал? :)

    кстати, тут тебе и пример ООП с последовательным вызовом методов