PHP.SU

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

Страниц (19): В начало « ... 8 9 10 11 [12] 13 14 15 16 ... » В конец

> Найдено сообщений: 285
Slavenin Отправлено: 17 Июня, 2011 - 22:29:35 • Тема: Инклуды INCLUDE (PHP) • Форум: Работа с файловой системой и файлами

Ответов: 5
Просмотров: 2191
может
PHP:
скопировать код в буфер обмена
  1. include_once($_SERVER['DOCUMENT_ROOT']  .'config.php');
Slavenin Отправлено: 17 Июня, 2011 - 21:26:23 • Тема: НЕ РАБОТАЕТ ВЫВОД ЛЕВОГО МЕНЮ НА PHP ИЗ MYSQL • Форум: Если скрипт не работает

Ответов: 9
Просмотров: 3058
Не понял
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if(isset($_GET['menu']))
  3. {
  4.   //обработчик типа
  5.   if($_GET['menu'] == 1)
  6.   {...}
  7.   else//или elseif смотря что нужно
  8.   {...}
  9.  
  10. }
  11. else
  12. {
  13. function show_cat($par=0,$old=0){
  14.  global $dbpf,$lev; $out = ''; $lev++;
  15.  $sql = "SELECT * FROM mypages WHERE parent_id=".$par." AND id NOT IN (1,18,44,41,51,50,48,49,47) ORDER BY sort_id";
  16.  $qur = mysql_query($sql); $kol = mysql_num_rows($qur);
  17.  if ($qur && $kol){
  18.  while($rez = mysql_fetch_assoc($qur)){
  19.  $out .= '<ul>';
  20.  $out .= '<li>';
  21.  
  22.  for($i=2;$i<=$lev;$i++) { $out .= '--'; }
  23.  
  24.  if ($rez['menu_status']==1) $out .= stripslashes($rez['title']);
  25.  else
  26.  $out .= '<a href="http://mysite.ru/index.php?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';
  27.  $out .= '</p></li>';
  28.  $out .= '</ul>';
  29.  $out .= show_cat($rez['id'],$rez['par']);
  30.  $lev--;
  31.  }
  32.  }
  33.  return $out;
  34.  }
  35. //все-таки стоит наверн вызвать функцию, ток параметры сами укажите какие нужно.
  36. echo function show_cat($par, $old)
  37. }
  38.  
  39. ?>

и может быть, то что я написал, даже будет работать Ха-ха
Slavenin Отправлено: 17 Июня, 2011 - 20:21:07 • Тема: НЕ РАБОТАЕТ ВЫВОД ЛЕВОГО МЕНЮ НА PHP ИЗ MYSQL • Форум: Если скрипт не работает

Ответов: 9
Просмотров: 3058
PHP:
скопировать код в буфер обмена
  1. $out .= '<a href="http://mysite.ru/index.php?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';


и по sql можно переписать так:

PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM mypages WHERE parent_id=".$par." AND id NOT IN (1,18,44,41,51,50,48,49,47) ORDER BY sort_id";


да, и где собственно говоря обработка переменной $_GET['menu'] ? что вы ожидаете увидеть при нажатии на ссылку?
Slavenin Отправлено: 17 Июня, 2011 - 19:39:22 • Тема: НЕ РАБОТАЕТ ВЫВОД ЛЕВОГО МЕНЮ НА PHP ИЗ MYSQL • Форум: Если скрипт не работает

Ответов: 9
Просмотров: 3058
а прописать в ссылке абсолютный адрес вы не пробовали?
Slavenin Отправлено: 17 Июня, 2011 - 19:12:39 • Тема: Классы, методы и параметры • Форум: Объектно-ориентированное программирование

Ответов: 25
Просмотров: 8210
хорошо, можно и закрыть Улыбка

только сейчас столкнулся с тем, что все-таки не ошибся переписав пяток классов под такую реализацию. в одном из них есть функция формирующая запрос, у нее есть несколько обслуживающих функций, как оказалось очень удобно внутри любой обслуживающей функции знать какие именно параметры запроса определены, это к вопросу "зачем?" Подмигивание
Slavenin Отправлено: 17 Июня, 2011 - 17:57:51 • Тема: Классы, методы и параметры • Форум: Объектно-ориентированное программирование

Ответов: 25
Просмотров: 8210
Stierus, именно так я вначале и сделал, для унификации обмена данных между классами, но потом путем логических измышлений пришел к выводу что проще все хранить в исходном объекте.

DeepVarvar, именно для этого я сделал стек вызовов, где четко отслеживается из какого файла, какая функция какую вызвала и с какими параметрами Улыбка
Slavenin Отправлено: 17 Июня, 2011 - 17:07:24 • Тема: Классы, методы и параметры • Форум: Объектно-ориентированное программирование

Ответов: 25
Просмотров: 8210
Stierus пишет:
"никогда нельзя точно сказать какие именно свойства объекта возьмет функция для своего использования"

я точно знаю какая функция что возьмет и какие свойства удалит после использования.
Stierus пишет:
То, что вы описываете, очень похоже на объекты данных,

можно поподробнее? Улыбка
Slavenin Отправлено: 17 Июня, 2011 - 16:33:57 • Тема: Классы, методы и параметры • Форум: Объектно-ориентированное программирование

Ответов: 25
Просмотров: 8210
никогда нельзя точно сказать какие именно свойства объекта возьмет функция для своего использования. хотя здесь все спорно Улыбка в общем мне кажется ИМХО что так удобнее, когда все содержиться в одном месте и объект знает какие свойства ему необходимы. Я согласен что возможны сложности при таком подходе, но "мы не ищем легких путей"... Подмигивание а относительно с++ не абстрактные функции, а просто функции, память меня все же подвела Улыбка

C++ rullez Поклон

CODE (htmlphp):
скопировать код в буфер обмена
  1. Вот C++ синтаксис определения простого класса:
  2.  class Date {
  3.  private:
  4.   int dd;
  5.   int mm;
  6.   int yy;
  7.  public:
  8.   void Init (int d, int m, int y);
  9.   int Day ();
  10.   int Month ();
  11.   int Year ();
  12.  };
  13.  
  14. А вот определение одного из методов:
  15.  void Date::Init (int d, int m, int y)
  16.  {
  17.   dd = d;
  18.   mm = m;
  19.   yy = y;
  20.  }


если убрать определение переменных получаем интерфейс php
Slavenin Отправлено: 17 Июня, 2011 - 15:35:15 • Тема: Классы, методы и параметры • Форум: Объектно-ориентированное программирование

Ответов: 25
Просмотров: 8210
Stierus пишет:
единственный вопрос - "зачем?"

для того чтобы полностью скрыть реализацию функции в классе. Была мысль реализовать этот параметр как приватный и в виде стека и работать с ним только специальными функциями. Ниндзя к тому же нет необходимости в переменных которые будут курсировать по коду, каждая функция знает какой параметр ей нужно использовать, при нормальной реализации она будет выбрасывать исключение если параметр несоответствующего типа или не определен.

эх, жаль все-таки, что php не строго типизированный язык... многих проблем можно было бы избежать...

по-поводу интерфейсов. по сути это наворот абстрактных функций из с++, где, если мне не изменяет память, их можно определить прямо внутри класса... если класс не очень сложный, то интерфейс ему не уперся, ИМХО!
Slavenin Отправлено: 17 Июня, 2011 - 14:55:21 • Тема: Классы, методы и параметры • Форум: Объектно-ориентированное программирование

Ответов: 25
Просмотров: 8210
Stierus, все это конечно хорошо. пример нормального интерфейса я и сам могу привести. Улыбка Разговор шел про класс-пример. Хм с тем же успехом имена параметров можно заменить на порядковые номера массива. Закатив глазки
Slavenin Отправлено: 17 Июня, 2011 - 12:12:00 • Тема: Классы, методы и параметры • Форум: Объектно-ориентированное программирование

Ответов: 25
Просмотров: 8210
Цитата:
Есть такая штука, как геттеры и сеттеры, вы о них знаете?

знаю Улыбка
Stierus пишет:
как должен выглядеть интерфес для этого класса?

ну например так
PHP:
скопировать код в буфер обмена
  1. interface ITemplate
  2. {
  3.     public function foo();
  4.  }
  5.  
  6. class test implements ITemplate
  7. {
  8.         var $param;
  9.         test()
  10.         {
  11.                 $this->param = array();
  12.         }
  13.  
  14.         function foo(){
  15.                 (count($this->param) > 0) ? print_r($this->param) : 'Значение не определено';
  16.         }
  17. }
  18.  
  19. $aaa = new test();
  20. $aaa->foo();
Slavenin Отправлено: 16 Июня, 2011 - 21:51:38 • Тема: Классы, методы и параметры • Форум: Объектно-ориентированное программирование

Ответов: 25
Просмотров: 8210
именно для этого в каждом классе должен быть конструктор, инициализирующий все ключевые поля.

в общем я понял, что использовать такой способ не есть хорошо.

если есть ссылка про side-effect по-русски буду рад почитать, а то яндекс выдал кучу песен, а гугел ссылки на кучу ненашенских сайтов
Slavenin Отправлено: 16 Июня, 2011 - 21:26:04 • Тема: Классы, методы и параметры • Форум: Объектно-ориентированное программирование

Ответов: 25
Просмотров: 8210
в чем сложность? класс bar наследует и перегружает метод и поле исходного класса соответственно работать мы будем с методами и полями второго класса.
Slavenin Отправлено: 16 Июня, 2011 - 21:01:40 • Тема: Классы, методы и параметры • Форум: Объектно-ориентированное программирование

Ответов: 25
Просмотров: 8210
Всем доброго времени суток!

Пришла в голову мысль следующего содержания: "А что если убрать у методов класса все параметры, ввести классу доп поле и необходимые для функции параметры брать из этолго поля?"
пример

PHP:
скопировать код в буфер обмена
  1. class test
  2. {
  3.         var $param;
  4.        
  5.         test()
  6.         {
  7.                 $this->param = array();
  8.         }
  9.        
  10.         function foo()
  11.         {
  12.                 echo $this->param[0];
  13.         }
  14. }
  15. $aaa = new test();
  16. $aaa->param[0] = 'Hellow';
  17. $aaa->foo();


хотелось бы услышать ваше мнение относительно такой конструкции Улыбка
Slavenin Отправлено: 16 Июня, 2011 - 20:55:22 • Тема: Авторизация на PHP • Форум: Обсуждение статей

Ответов: 8
Просмотров: 4047
сталкивался с такой же проблемой, помогло изменение кодировки файла utf-8 -> ANSI -> utf-8 и попробуй поставить функцию session_start(); в самом начале файла сразу после <?PHP

ну и в самом крайнем случае можешь написать так:

Страниц (19): В начало « ... 8 9 10 11 [12] 13 14 15 16 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB