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 :: Использование функций

 PHP.SU

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


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

> Без описания
D1mOn
Отправлено: 31 Мая, 2008 - 03:37:00
Post Id



Частый гость


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


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

[+][+][+][+][+]


Здрасте всем! Хочу сделать вывод ссылок через функцию. Примерно так:
PHP:
скопировать код в буфер обмена
  1.  
  2.  function link($class,$href,$title)
  3.  {
  4.    // вывод ссылки
  5.  }
  6.  

Оправдано ли такое использование? А если использоватьт функции для построения всего, от таблиц до изображений?
 
 Top
RomAndry Администратор
Отправлено: 31 Мая, 2008 - 04:19:55
Post Id



Частый посетитель


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


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




почему бы нет?
 
My status
 Top
D1mOn
Отправлено: 31 Мая, 2008 - 04:35:33
Post Id



Частый гость


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


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

[+][+][+][+][+]


Вот так:
PHP:
скопировать код в буфер обмена
  1. // вывод ссылки
  2.  function link($class,$href,$title,$onclick,$name)
  3.  {
  4.    echo "<a"; if($class!="") echo " class=\"".$class."\""; if($href!="") echo " href=\"".$href."\""; if($title!="") echo " title=\"$title\""; if($onclick!="") echo " onClick=\"$onclick\""; ?>><?PHP if($name!="") echo $name; ?></a><?PHP
  5.  }
  6.  
  7.  echo link("s111212121","javascript:alert('ok');","","","click here!");


Не скажется ли это на производительности, или наоборот, увеличит нагрузку?

(Отредактировано автором: 31 Мая, 2008 - 04:40:06)

 
 Top
scuter
Отправлено: 31 Мая, 2008 - 05:04:43
Post Id



Посетитель


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


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




Цитата:
Хочу сделать вывод ссылок через функцию.

нет когда в php коде есть html код, для меня это является косяком,

просто когда программист верстает и верстальшик программирует,
это становиться пыткой и для одного и для другого,
но если так захотелось сделай так,
PHP:
скопировать код в буфер обмена
  1. function link($text, $attrebut)
  2.  {
  3.    forach($attrebut as $key => $val)
  4.    {
  5.       $add[] = $key.'="'.$val.'"';
  6.    }
  7.    return '<a '.expload(' ', $add).' >'.$text.'</a>';
  8.  }
 
 Top
D1mOn
Отправлено: 31 Мая, 2008 - 05:15:41
Post Id



Частый гость


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


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

[+][+][+][+][+]


scuter пишет:
function link($text, $attrebut)
{
foreach($attrebut as $key => $val)
{
$add[] = $key.'="'.$val.'"';
}
return '<a '.explode(' ', $add).' >'.$text.'</a>';
}


И в чем прикол? В каком виде мне атрибуты передавать?

(Добавление)
scuter пишет:
просто когда программист верстает и верстальшик программирует,
это становиться пыткой и для одного и для другого,
но если так захотелось сделай так,

Я и верстальщик и программер и дизайнер и бухгалтер и директор и уборщик и электрик моего проекта ))) (и повар)

(Отредактировано автором: 31 Мая, 2008 - 05:18:31)

 
 Top
EuGen Администратор
Отправлено: 31 Мая, 2008 - 10:24:35
Post Id


Профессионал


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


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




Вообще говоря правильным является разделение php кода и html. (Например, шаблонизация). Так как программная логика - это одно, а способ отображения - совсем другое.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
scuter
Отправлено: 31 Мая, 2008 - 15:08:14
Post Id



Посетитель


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


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




D1mOn пишет:
Я и верстальщик и программер и дизайнер и бухгалтер и директор и уборщик и электрик моего проекта ))) (и повар)

как говориться
Цитата:
ты супер мега пиздатый чел.



D1mOn пишет:
И в чем прикол? В каком виде мне атрибуты передавать?

прикол в том что ты закидываеш в функцию как таковое содержимое тега,
а в атрибутах кидаеш атрибуты тега как то так,
PHP:
скопировать код в буфер обмена
  1. $att = array('href' => 'линка', 'title' => 'подсказка', 'id' => 'айдишник')
 
 Top
Джур
Отправлено: 31 Мая, 2008 - 19:28:08
Post Id



Посетитель


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


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




D1mOn пишет:
Здрасте всем! Хочу сделать вывод ссылок через функцию. Примерно так:
Оправдано ли такое использование? А если использоватьт функции для построения всего, от таблиц до изображений?

нагрузку это конечно же создаст но незначительную, зато это дает несколько приимущестВ. например можно подправить функцию и она начнет выдавать ЧПЛ-ки.
Садить же все на функци, весьма плохая идея. Ибо нужно чуствовать меру.

EuGen пишет:
Вообще говоря правильным является разделение php кода и html. (Например, шаблонизация). Так как программная логика - это одно, а способ отображения - совсем другое.

Ну, разделение на логику и представление весьма условная весЧ. Необязательно использовать Smarty чтобы эту самую логику отделять от представления Улыбка

РНР, на заре своего зарождения, был ШАБЛОНИЗАТОРОМ для такого языка как Perl. С тех пор в РНР и существует "альтернативный синтаксис". Коим многие благополучно и разделяют логику от представления. Кстати, если кто не знает, что Smarty, предварительно компилирует свои шаблоны в РНР код, прошу заглянуть в /templates_c...
Думаю для многих начинающих кодеров это будет любопытное зрелище.


-----
Тамбовский каджит тебе товарищ
 
 Top
D1mOn
Отправлено: 01 Июня, 2008 - 05:18:36
Post Id



Частый гость


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


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

[+][+][+][+][+]


EuGen пишет:
Вообще говоря правильным является разделение php кода и html. (Например, шаблонизация). Так как программная логика - это одно, а способ отображения - совсем другое.

Приведите, пожалуйста, пример
 
 Top
Джур
Отправлено: 01 Июня, 2008 - 05:31:22
Post Id



Посетитель


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


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




D1mOn пишет:
Приведите, пожалуйста, пример


Вот пример для Smarty

PHP:
скопировать код в буфер обмена
  1. <?
  2. $smarty->assign('tabl',array(2007,2008,2009))
  3.  


выводит список столбиком
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <table>
  3. {foreach from=$tabl item=x}
  4. <tr><td>{$x}</td>
  5. {/foreach}
  6. </table>
  7.  


прошу прощения, если где-то перепутал ключи. Улыбка Как видите, скрипт выводит массив и ему безразници как имено... А шаблон уже из масива делает HTML код, который мы и видем... Предпологается что шаблон потом можно изменить и отображатся будет по другому, но РНР скрипт от этого не изменится.

выводит массив в строчку
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <table><tr>
  3. {foreach from=$tabl item=x}
  4. <td>{$x}</td>
  5. {/foreach}
  6. </table>
  7.  


-----
Тамбовский каджит тебе товарищ
 
 Top
D1mOn
Отправлено: 01 Июня, 2008 - 14:05:04
Post Id



Частый гость


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


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

[+][+][+][+][+]


А можно юзать вот так простенько:
PHP:
скопировать код в буфер обмена
  1.  
  2. // функция загрузка модулей
  3.  function load_module($module_name)
  4.  {
  5.    $sql = mysql_query("SELECT * FROM `modules` WHERE `module_name` = '$module_name' LIMIT 1"); // получение списка модулей
  6.    if(mysql_num_rows($sql)!= 0)
  7.    {
  8.          // если модули есть в базе
  9.      $res = mysql_fetch_array($sql); // в массив
  10.      if(File_Exists($sitename.$modules_folder."module.".$module_name.".php"))
  11.       echo "Модуль найден!";
  12.      else echo "Модуль не найден!";
  13.  
  14.      echo "<br>".$sitename;
  15.    }
  16.  }
  17.  
  18.  load_module("mymodule");

(Добавление)
Джур пишет:
$smarty->assign('tabl',array(2007,2008,2009))

А это чудо под названием Smarty уже есть в PHP? И желательно преведите, пожалуйста простой пример шаблончика.

(Отредактировано автором: 01 Июня, 2008 - 14:07:51)

 
 Top
Джур
Отправлено: 01 Июня, 2008 - 15:44:30
Post Id



Посетитель


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


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




D1mOn пишет:
А это чудо под названием Smarty уже есть в PHP?

Слава богу нет... По умолчанию Смарти с РНР не идет


-----
Тамбовский каджит тебе товарищ
 
 Top
D1mOn
Отправлено: 01 Июня, 2008 - 15:50:10
Post Id



Частый гость


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


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

[+][+][+][+][+]


Почитал я про этот Smarty! Вроде создает нагрузку нехилую...
 
 Top
Джур
Отправлено: 02 Июня, 2008 - 08:08:07
Post Id



Посетитель


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


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




D1mOn пишет:
Почитал я про этот Smarty! Вроде создает нагрузку нехилую...

Ну это мягко сказанно. Улыбка
Я так понимаю, вас незадела параноя крупных web-студий Улыбка и вас еще не заставляли пользоватся этой гадостью. Улыбка раз так, то вот вам аналог но без Smarty


PHP:
скопировать код в буфер обмена
  1. <table border=1>
  2. <?foreach($tabl as $v):?>
  3. <tr><td><?=$v;?></td>
  4. <? endforeach;?>
  5. </table>


PHP:
скопировать код в буфер обмена
  1. <table border=1><tr>
  2. <?foreach($tabl as $v):?>
  3. <td><?=$v;?></td>
  4. <? endforeach;?>
  5. </table>


если вам понравились такие шаблоны то можно оформить всю логику для работы с ними в функцию или класс и наслаждатся и разделением кода и логики и скоростью чистого РНР

(Отредактировано автором: 02 Июня, 2008 - 08:10:48)



-----
Тамбовский каджит тебе товарищ
 
 Top
scuter
Отправлено: 02 Июня, 2008 - 17:27:55
Post Id



Посетитель


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


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




Джур пишет:
Я так понимаю, вас незадела параноя крупных web-студий Улыбка и вас еще не заставляли пользоватся этой гадостью. Улыбка раз так, то вот вам аналог но без Smarty

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB