IPB


Бесплатные VPN сервера

Здравствуйте, гость ( Вход | Регистрация )

> Внимание!

Задавая вопрос, обязательно укажите свой логин, домен и скрипт, которых он касается.

>> !!Ответы на 90% вопросов здесь!! <<


Правила хостинга | Общие ошибки новичков | Поиск

 
Тема закрытаНачать новую тему
[PHP] Как правильно подключить данные?
BaNru
сообщение 1.3.2011, 13:07
Сообщение #1


Местный флудер
*******

Группа: Пользователи
Сообщений: 1222
Регистрация: 24.5.2010
Из: Самарская обл.
Пользователь №: 1502
Домен: g63.ru


Что то соображалка не работает с утра.
Есть файл, в котором два условия, так же есть еще файл, в который хотелось бы вынести данные для условий.

Код
switch $var1:
  case "var0":
    куча всего, и переменных, и доп условий #1
  break;

  case "var1":
    куча всего, и переменных, и доп условий #2
  break;

  endswitch;

// Здесь всякоразно другой код
// также ниже идет еще условие, которое работает от результатов первого

if (){куча всего #1};
elseif (){куча всего #2};
else(ну и завершение);


Это примерная схема.
Так вот, во внешний файл я могу вынести
xxx.php
Код
<?php куча всего, и переменных, и доп условий #2 ?>

и подключить его просто
Код
case "var1":
    include "xxx.php";
  break;


Так вот, как можно вынести в этот файл и для второго условия?
Код
<?php куча всего #2 ?>


Назначить переменную для первого и отдельно для второго условия...так там где "куча всего" куча и переменных и условий. Как то не удобно....

Кто понял написанный бред - подскажите куда копать.


--------------------
Мой простой блог возродившийся из пепла времён

Чем больше человек стыдится, тем больше он заслуживает уважения /Б.Шоу/


- бесплатное продвижение сайтов
- обмен целевым трафиком
- увеличение посещаемости сайта
Тема об "RSSFriends" на форуме NX0
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 1.3.2011, 13:19
Сообщение #2


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


Точно так же...

elseif ({условие}) include xxx.php;

Ты можешь бить файл на include как угодно. Главное условия сохранять в рамках одного файла, т.е. нельзя делать if в одном файле, а else в другом... Хотя, как-то делают и это...


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение
BaNru
сообщение 1.3.2011, 13:22
Сообщение #3


Местный флудер
*******

Группа: Пользователи
Сообщений: 1222
Регистрация: 24.5.2010
Из: Самарская обл.
Пользователь №: 1502
Домен: g63.ru


Не, ты не понял, там именно разные условия.

Если я подключу, то сработает сначала для первого условия, то что предназначено для второго, и если это не вызовет ошибки, то потом то что предназначалось для первого условия сработает для второго и тут 100% или ошибка или бесконечный цикл.

Т.е. допустим в первом идет определение переменных, назначения какие то им. А во втором допустим коннект с БД.


--------------------
Мой простой блог возродившийся из пепла времён

Чем больше человек стыдится, тем больше он заслуживает уважения /Б.Шоу/


- бесплатное продвижение сайтов
- обмен целевым трафиком
- увеличение посещаемости сайта
Тема об "RSSFriends" на форуме NX0
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 1.3.2011, 13:27
Сообщение #4


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


Код
<?php
include config.php //тут пишем любые переменные
include connect.php //тут делаем коннект в БД
?>


Либо я в конец не въехал в задание...


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение
BaNru
сообщение 1.3.2011, 13:42
Сообщение #5


Местный флудер
*******

Группа: Пользователи
Сообщений: 1222
Регистрация: 24.5.2010
Из: Самарская обл.
Пользователь №: 1502
Домен: g63.ru


Ну это я знаю, меня интересует именно в один файл. biggrin.gif
Дело в том, что в первом условие case уже насчитывает 4 штуки, а в будущем будет во много больше.
Так же примерно развивается и второе условие.

И в каждом case где-то от 20 до 40 строчек, и это только начало, дальше больше.
Во втором условие ситуация аналогичная.

Щас приведу более подробную схему

Код
switch $var1:
  case "var0":
    $id = array();
  break;

  case "var1":
    preg_match_all() // вот отсюда
    switch():

      case "1":
        $id = array();
      break;

      case "2":
        $id = array();
      break;

      case "3":
        $id = array();
      break; // до сюда хотел бы вынести в файл

  break;

  endswitch;

// Тут общая обработка полученного


if (условие из первого и нескольких других case){$peremenay="всяко разно из первого цикла + обработка между циклами"};
elseif (из case два){
   if() {for(){ // и от сюда
          if(){}
       }
   }  // до сюда
}
else(ну и завершение);


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


--------------------
Мой простой блог возродившийся из пепла времён

Чем больше человек стыдится, тем больше он заслуживает уважения /Б.Шоу/


- бесплатное продвижение сайтов
- обмен целевым трафиком
- увеличение посещаемости сайта
Тема об "RSSFriends" на форуме NX0
Перейти в начало страницы
 
+Цитировать сообщение
inst
сообщение 1.3.2011, 19:25
Сообщение #6


Студент
****

Группа: Пользователи
Сообщений: 188
Регистрация: 2.8.2008
Пользователь №: 188



Я тоже не въехал в задание. Возможно, тебе надо просто сделать include внутри каждого блока case?

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


--------------------
|
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 1.3.2011, 20:43
Сообщение #7


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


Смотри: ты можешь любой блок выводить в include, но ты не можешь разрывать а) логику; б) скобки {}.

Т.е. всё, что внутри {} ты можешь выносить в другие файлы, но не можешь вынести else, не вынося в этот же файл if.


Код
    preg_match_all() // вот отсюда
    switch():

      case "1":
        $id = array();
      break;

      case "2":
        $id = array();
      break;

      case "3":
        $id = array();
      break; // до сюда хотел бы вынести в файл

Прекрасно выноситься

Код
   if() {for(){ // и от сюда
          if(){}
       }
   }  // до сюда

Тоже самое - выносится без проблем...
А вот:
Код
elseif (из case два){
   if() {for(){ // и от сюда
          if(){}
       }
   }  // до сюда
}
выносить нельзя, т.к. нарушается конструкция IF-ELSE


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение
BaNru
сообщение 1.3.2011, 20:44
Сообщение #8


Местный флудер
*******

Группа: Пользователи
Сообщений: 1222
Регистрация: 24.5.2010
Из: Самарская обл.
Пользователь №: 1502
Домен: g63.ru


Ну я не знаю как еще объяснить wacko.gif
По сути да, мне надо сделать как бы include в эти два блока. Но эти подключения хотел положить в один файл...
Видишь комментарии в последнем примере кода? Там комментарии "от сюда" и "до сюда"
По сути это два разных условия, с кучей кода. Вот их хотелось и вынести, но в один файл.

В общем сейчас пока что сделал два файла, один для первого условия, другой для второго.


--------------------
Мой простой блог возродившийся из пепла времён

Чем больше человек стыдится, тем больше он заслуживает уважения /Б.Шоу/


- бесплатное продвижение сайтов
- обмен целевым трафиком
- увеличение посещаемости сайта
Тема об "RSSFriends" на форуме NX0
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 1.3.2011, 20:48
Сообщение #9


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


Это можно сделать только через функции/классы, т.к. ты вызываешь 2 разных кода в двух разных местах. Из одно файла это сделать логикой нельзя (без бубна), но можно создать классы, и вызывать их где нужно...


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение
BaNru
сообщение 1.3.2011, 20:50
Сообщение #10


Местный флудер
*******

Группа: Пользователи
Сообщений: 1222
Регистрация: 24.5.2010
Из: Самарская обл.
Пользователь №: 1502
Домен: g63.ru


во, это похоже меня и интересовало, именно классы. Спасибо, пошел читать.


--------------------
Мой простой блог возродившийся из пепла времён

Чем больше человек стыдится, тем больше он заслуживает уважения /Б.Шоу/


- бесплатное продвижение сайтов
- обмен целевым трафиком
- увеличение посещаемости сайта
Тема об "RSSFriends" на форуме NX0
Перейти в начало страницы
 
+Цитировать сообщение
absinthe
сообщение 2.3.2011, 21:47
Сообщение #11


Абитуриент
***

Группа: Пользователи
Сообщений: 45
Регистрация: 4.10.2010
Пользователь №: 1827
Домен: свой


В принципе в любом языке программирование есть правило - если код выполняется где-то хотя бы дважды - его необходимо вынести в отдельную функцию. Придерживание оного правила заметно улучшает логику программы - делает ее более модульной и понятной. Я думаю это относится и к вашему случаю. Если вы все равно подключаете файл для отработки кода - подключайте его в самом начале, но в нем все сделайте в виде функций и в нужный момент вызывайте необходимую.
Перейти в начало страницы
 
+Цитировать сообщение
BaNru
сообщение 3.3.2011, 0:06
Сообщение #12


Местный флудер
*******

Группа: Пользователи
Сообщений: 1222
Регистрация: 24.5.2010
Из: Самарская обл.
Пользователь №: 1502
Домен: g63.ru


absinthe, да, эт понятно что подключать в начале.
Я имел в виду как обозначить это во внешнем файле, и как потом это подключить/назначить.

Функции и классы я пока не изучал, хотя использовал чужие довольно часто....Так что пришло время их изучать.


--------------------
Мой простой блог возродившийся из пепла времён

Чем больше человек стыдится, тем больше он заслуживает уважения /Б.Шоу/


- бесплатное продвижение сайтов
- обмен целевым трафиком
- увеличение посещаемости сайта
Тема об "RSSFriends" на форуме NX0
Перейти в начало страницы
 
+Цитировать сообщение

Тема закрытаНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 21.11.2019, 13:37