//Настройка логов по умолчанию
define('LOG_SMS', 1); //1/0 Вести/Не вести на СМС
define('LOG_EMAIL', 1); //1/0 Вести/Не вести на мыло
define('LOG_ANTIVIR', 1); //1/0 Вести/Не вести логи на антивирус
Так же есть функция которая делает логи
в функции есть такой момент:
//Если логи по умолчанию на 0 то выход с функции
if ($type == "SMS" and LOG_SMS == 0) return;
if ($type == "EMAIL" and LOG_EMAIL == 0) return;
if ($type == "ANTIVIR" and LOG_ANTIVIR == 0) return;
хочу сделать как-то вот так:
//Проверка настроек по умолчанию на ведения логов по определенному типу
if (LOG_{$type} == 0) return false; else print true;
Вот в этой строке и не могу понять как решить проблему склеивания LOG_{$type} Подскажите пожалуйста как склеить имя переменной.
Спустя 14 минут, 54 секунды (19.01.2012 - 11:45) johniek_comp написал(а):
define('LOG_SMS', 1);
$type = "SMS";
echo LOG_SMS.$type;
Спустя 1 минута, 58 секунд (19.01.2012 - 11:47) Winston написал(а):
Можно попробовать так
А если не сработает, то тогда вместо констант делать обычные переменные и использовать символические ссылки.
Спустя 35 секунд Winston написал(а):
johniek_comp
И что? Работает?
if(eval("return LOG_$type;") == 0) return false; else print true;
А если не сработает, то тогда вместо констант делать обычные переменные и использовать символические ссылки.
Спустя 35 секунд Winston написал(а):
johniek_comp
И что? Работает?
Спустя 3 минуты, 32 секунды (19.01.2012 - 11:50) johniek_comp написал(а):
Winston
Работает, вчера так делал
Работает, вчера так делал
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 2 минуты, 42 секунды (19.01.2012 - 11:53) Winston написал(а):
johniek_comp
Твой код не делат то, что нужно автору.
Твой код не делат то, что нужно автору.
Спустя 1 минута, 9 секунд (19.01.2012 - 11:54) johniek_comp написал(а):
Winston
Ну значить я не вкурил что ему надо.
Ну значить я не вкурил что ему надо.
Спустя 2 минуты, 10 секунд (19.01.2012 - 11:56) Winston написал(а):
Ему нужно так
Но так пахать не будет.
А вот с помощью переменных это сделать легко.
Вот так:
То есть с использованием символических ссылок.
define('LOG_SMS', 1);
$type = "SMS";
echo LOG_.$type;
Но так пахать не будет.
А вот с помощью переменных это сделать легко.
Вот так:
$LOG_SMS = 1; //1/0 Вести/Не вести на СМС
$LOG_EMAIL = 1; //1/0 Вести/Не вести на мыло
$LOG_ANTIVIR = 1; //1/0 Вести/Не вести логи на антивирус
if ($type == "SMS" and $LOG_SMS == 0) return;
if ($type == "EMAIL" and $LOG_EMAIL == 0) return;
if ($type == "ANTIVIR" and $LOG_ANTIVIR == 0) return;
$LOG = 'LOG_' . $type;
if ($$LOG == 0) return false; else print true;
То есть с использованием символических ссылок.
Спустя 14 минут, 57 секунд (19.01.2012 - 12:11) vital написал(а):
Цитата (Winston @ 19.01.2012 - 10:56) |
Ему нужно такdefine('LOG_SMS', 1); Но так пахать не будет. А вот с помощью переменных это сделать легко. Вот так: $LOG_SMS = 1; //1/0 Вести/Не вести на СМС То есть с использованием символических ссылок. |
Это не ссылки же.. м?
Спустя 1 минута, 30 секунд (19.01.2012 - 12:13) Winston написал(а):
Цитата (vital @ 19.01.2012 - 11:11) |
Это не ссылки же.. м? |
Вот ссылка
Цитата (Winston @ 19.01.2012 - 10:56) |
$LOG = 'LOG_' . $type; if ($$LOG == 0) return false; else print true; |
Спустя 26 минут, 35 секунд (19.01.2012 - 12:39) vital написал(а):
Цитата (Winston @ 19.01.2012 - 11:13) | ||||
Вот ссылка
|
Я просто не помнил как оно там правильно называется.
Всегда видел просто переменная переменная
![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)
Ага, глянул ман, это разные ссылки.
Спустя 2 минуты, 8 секунд (19.01.2012 - 12:41) Winston написал(а):
&$a - жесткая ссылка
$b = 'a'; - символическая ссылка на переменную а
$$b - достаем значение $a
$b = 'a'; - символическая ссылка на переменную а
$$b - достаем значение $a
Спустя 19 минут, 31 секунда (19.01.2012 - 13:01) qari написал(а):
Цитата (johniek_comp @ 19.01.2012 - 08:45) |
define('LOG_SMS', 1); |
Этот момент не работает!
Спустя 1 минута, 30 секунд (19.01.2012 - 13:03) qari написал(а):
Цитата (Winston @ 19.01.2012 - 08:47) |
Можно попробовать такif(eval("return LOG_$type;") == 0) return false; else print true; А если не сработает, то тогда вместо констант делать обычные переменные и использовать символические ссылки. Спустя 35 секунд Winston написал(а): johniek_comp И что? Работает? |
Супер! Спасибо! Работает!
Спустя 2 минуты (19.01.2012 - 13:05) qari написал(а):
Цитата (Winston @ 19.01.2012 - 08:56) |
Ему нужно такdefine('LOG_SMS', 1); Но так пахать не будет. А вот с помощью переменных это сделать легко. Вот так: $LOG_SMS = 1; //1/0 Вести/Не вести на СМС То есть с использованием символических ссылок. |
Верно, если бы были не константы то оно работало бы походу. Но вот и проблема была именно из за константы!
Спустя 27 минут, 57 секунд (19.01.2012 - 13:32) johniek_comp написал(а):
У меня работает, у вас нет
Так всегда!
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
![ohmy.gif](http://phpforum.ru/html/emoticons/ohmy.gif)
Спустя 33 минуты, 16 секунд (19.01.2012 - 14:06) asokol написал(а):
gari, Вы можете объяснить, для чего нужно склеить имя переменной? Какой цели Вы пытаетесь достичь?
Спустя 14 минут, 38 секунд (19.01.2012 - 14:20) Winston написал(а):
Цитата (johniek_comp @ 19.01.2012 - 12:32) |
У меня работает, у вас нет Так всегда! |
Да? :)
А ты напиши так
define('LOG_SMS', 1);
$type = "SMS";
echo LOG_.$type;
Работает? Что выводит?