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
Форумы портала PHP.SU :: Версия для печати :: три в одном
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » три в одном

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

1. GXR-S - 19 Января, 2010 - 18:42:05 - перейти к сообщению
Всем привет! Ребят помогите Улыбка
У меня на сайте вывод новостей осуществляется 3 файлам... надо бы сделать всё в одном файле... При изготовлении своими руками, выводит сразу всё...
3 файла в архиве: скачать
поможете? Закатив глазки
2. Carzil - 19 Января, 2010 - 20:42:57 - перейти к сообщению
all_news.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. @if($_GET['act'] == "add"){
  4. include("/add_news");
  5. }elseif($_GET['act'] == "view"){
  6. include("/view_news");
  7. }elseif($_GET['act'] == "viewcat"){
  8. include("/view_cat");
  9. }else{
  10. echo "Ошибка! Только корректным путём входите в скрипт";
  11. }
  12. ?>
  13.  
3. vitaliy_mad - 19 Января, 2010 - 21:14:13 - перейти к сообщению
Carzil лучше использовать конструкция switch:

PHP:
скопировать код в буфер обмена
  1. switch ($_GET['act']) {
  2.   case 'add':
  3.     include("/add_news");
  4.   break;
  5.   case 'view':
  6.     include("/view_news");
  7.   break;
  8.   case 'viewcat':
  9.     include("/view_cat");
  10.   break;
  11.   default:
  12.     echo "Ошибка! Только корректным путём входите в скрипт";
  13.   break;
  14. }
  15.  
4. Carzil - 19 Января, 2010 - 21:40:39 - перейти к сообщению
vitaliy_mad, просто мне привычнее if, elseif и else.
5. GXR-S - 19 Января, 2010 - 21:51:44 - перейти к сообщению
Наверно вы немного не так поняли =))
с инклюдом не то, что нужно..
Вот пример: скачать acces.php - на этом примере надо вывести те 3 файла в одном файле.(т.е вместо 3 файлов,чтоб был 1 файл).. у самого немного не получается
сорри если не так высказался Радость
6. vitaliy_mad - 19 Января, 2010 - 22:01:04 - перейти к сообщению
GXR-S тогда вместо инклудов вставляйте содержимое соответствующих файлов.

Carzil привчнее то оно привычнее, но с switch код более быстро выполняется и немного читабелнее... а так в принципе, конечно, дело привычки...
7. movEAX - 20 Января, 2010 - 06:34:52 - перейти к сообщению
vitaliy_mad пишет:
но с switch код более быстро выполняется и немного читабелнее..


Не совсем так, в плане читабельности я согласен. Но конструкция if else пошустрее работает) Кто не верит может байт код посмотреть.
8. Carzil - 20 Января, 2010 - 11:33:40 - перейти к сообщению
vitaliy_mad пишет:
Carzil привчнее то оно привычнее, но с switch код более быстро выполняется и немного читабелнее... а так в принципе, конечно, дело привычки...

Спасибо за совет!
9. vitaliy_mad - 20 Января, 2010 - 13:02:44 - перейти к сообщению
movEAX пишет:
Но конструкция if else пошустрее работает

как показал опыт действительно, if elseif работает быстрее...

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     unset($cnt);
  3.     $sts=microtime(true);
  4.     for($i=0;$i<=10000000;$i++) {
  5.         if ($i==10) echo "10\n";
  6.         elseif ($i==100) echo "100\n";
  7.         elseif ($i==1000) echo "1000\n";
  8.         elseif ($i==10000) echo "10000\n";
  9.         elseif ($i===100000) echo "100000\n";
  10.         else $cnt++;
  11.     }
  12.     $ts1=microtime(true)-$sts;
  13.     unset($cnt);
  14.  
  15.     $sts=microtime(true);
  16.     for($i=0;$i<=10000000;$i++) {
  17.         switch($i) {
  18.             case 10:  echo "10\n";break;
  19.             case 100: echo "100\n";break;
  20.             case 1000: echo "1000\n";break;
  21.             case 10000: echo "10000\n";break;
  22.             case 100000: echo "100000\n";break;
  23.             default: $cnt++;break;
  24.         }
  25.     }
  26.  
  27.     $ts2=microtime(true)-$sts;
  28.     echo 'runtime: '.($ts1)."secs\n\n";
  29.     echo 'runtime 2: '.($ts2)."secs\n\n";
  30. ?>
  31.  


Результаты:
CODE (htmlphp):
скопировать код в буфер обмена
  1. 10
  2. 100
  3. 1000
  4. 10000
  5. 100000
  6. 10
  7. 100
  8. 1000
  9. 10000
  10. 100000
  11. runtime: 6.1740000248secs
  12.  
  13. runtime 2: 7.16900014877secs
  14.  

 

Powered by ExBB FM 1.0 RC1