мусор. накопительная

MagnetiZ

Новичок
Я был злой.
Автор. Я не понял что ты хочешь.....
Да и моя хата скраю
 

MagnetiZ

Новичок
Beavis
Йа понял!
Получается чет типа того:
PHP:
<?php
$filename = 'xxx.php';
$Content = file_get_contents($filename);
$varname = 'abcd1';
$Code = array();
if(preg_match('|\$'.$varname.'\s+=\s+.*?;|', $Content, $Code)) {
    eval($Code[0]);
    echo $$varname;
} 
?>
 

MagnetiZ

Новичок
berkut
А может она и не девочка вовсе....
Мне вот тоже стало "обидно, досадно .. да ладно" (с) Высоцкий
 

MagnetiZ

Новичок
А можно вообще обойтись без кейсов :))
В общем у тебя есть некоторые вызываемые пользователейм события:
1.view
2.req
.....
n. dafault (что то по умолчанию)
Для каждого события логичнее сделать свой обработчик (более подробно читай про Событийно ориентированное программирование)
а попросту это либо исполняемая функция(метод) или даже отдельный файл Мне глубоко пофигу как много мусора будет у тебя на сервере. А тебе должно быть не пофигу - поэтому пример приведенный ниже - только пример.
опишу на примере отдельного файла:
допустим у тебя есть файлы
1. on_view.php (для события view)
2. make_req.php (для события req)
Можно сделать так:
PHP:
$Wrappers = array(
'view'=>'on_view',
'req'=>'make_req'
);

if(isset($Wrappers[$action])) include($Wrappers[$action].'.php');
else echo 'default';
Как по мне этот код более краток и лаконичен.
:)
 

AmdY

Пью пиво
Команда форума
поцтолом. :)
у человека проблемы с синтаксисом, в скрипте нотисы, а ему толкуют о высоком, может ещё про фронт контроллер расскажем.?!
dirol попробуй в начале скрипта написать error_reporting(E_ALL);
MagnetiZ действительно неплохо, только потом надоедает искать какой экшин какой скрипт вызывает. лучше так:
PHP:
$Wrappers = array(
'view', 
'req' 
); 
if(isset($Wrappers[$action])) {
    include($action.'.php'); 
} else {
   echo 'default';
}
 

MagnetiZ

Новичок
AmdY
Если бы твой скрипт еще работал.....
С чего ты взял что $action поступает только лишь с целочисленными значениями?
 

AmdY

Пью пиво
Команда форума
ой, сорри, лоханулся, не проверил
PHP:
$Wrappers = array(
'view', 
'req' 
); 
if(in_array($action, $Wrappers)) {
    include($action.'.php'); 
} else {
   echo 'default';
}
 

MagnetiZ

Новичок
AmdY
все равно твоей пример не есть гут.
1. Он не масштабуирем вовсе.
2. Свой пример я привел как возможную реализацию конкретной задачи. А ведь НЕ ФАКТ что именно так будет правильно. Поэтому и вместо значений 'on_view' и 'make_req' легко могут выступать и массивы и именами функций или методов классов с указанием имен объектов.
Путаницы не будет по той простой причине что указываются обработчики в одном месте.
В моем примере используються только операторы языка PHP. Поэтому он быстр.
Данного когда походу быть вовсе не должно. - ничего полезного он не выполняет - он только определяет "а чтобы полезного ему запустить" Поэтому не вижу смысла выделять под него функции типа in_array.
 
Сверху