Форум → Программирование → PHP для идиотов → Как вставить константу в строку?
Как вставить константу в строку?
Страницы: ← Предыдущая страница • Следующая страница →
-
Март 5, 2009, 7:09 п.п., спустя 3 минуты 50 секунд
adw0rd, это действительно не работает. Фигурные скобки для массивов.
smackthat, нафига тебе именно "без конкатенации"? В чем сакральный смысл? -
-
Март 5, 2009, 7:24 п.п., спустя 2 минуты 5 секунд
AlexB, я никогда не юзал, просто предложил :)https://smappi.org/ - платформа по созданию API на все случаи жизни -
Март 5, 2009, 8:38 п.п., спустя 1 час 14 минут 35 секунд
вот в чем сакральный смысл: есть файл с константами
<?
// modes
define("MODE_MAIN",0);
define("MODE_NEWS",1);
define("MODE_ADMIN",2);
define("MODE_REGISTER",3);
define("MODE_LOGIN",4);
define("MODE_CABINET",5);
// submodes
define("SUBMODE_DEFAULT",0);
define("SUBMODE_REG_CHECK",1);
define("SUBMODE_LOGIN_EXIT",1);
define("SUBMODE_ADMIN_ADD",2);
define("SUBMODE_ADMIN_EDIT",3);
define("SUBMODE_ADMIN_UPDATE",4);
define("SUBMODE_ADMIN_DELETE",5);
?>
он определяет как будет формироваться содержание сайта, тоесть что нужно выводить. Немного кода:
function addContent()
{
$htmlCode="";
$mode=getValueFrom_GET('mode');
switch($mode)
{
// главная страница
case MODE_MAIN:
add(welcome_func(),$htmlCode);
break;
case MODE_NEWS:
add(read_news_func(),$htmlCode);
break;
case MODE_ADMIN:
add(edit_news_func(),$htmlCode);
break;
case MODE_REGISTER:
add(registration_func(),$htmlCode);
break;
case MODE_LOGIN:
add(login_func(),$htmlCode);
break;
case MODE_CABINET:
add(cabinet_func(),$htmlCode);
break;
}
return $htmlCode;
}
тут все хорошо, константы отлично вписались вместо цифр и не парят. Но вот, когда это нужно впихнуть в строку, при выводе
html кода в ссылке например:
// выводим все статьи в список
add("<h2>$title</h2>
<p>$text …<br>
<a class=\"links_small\" href=\"index.php?mode=". MODE_ADMIN ."&submode=" . SUBMODE_ADMIN_EDIT . "&id=$id\">изменить</a> |
<a class=\"links_small\" href=\"index.php?mode=" . MODE_ADMIN . "&submode=" . SUBMODE_ADMIN_DELETE . "&id=$id\">удалить</a></p><br>",$htmlCode);
это же какой-то кашмар!!!
блин, что с форумом, оно вместо \ пишет #38 -
Март 5, 2009, 8:56 п.п., спустя 18 минут 7 секунд
ну так и надо делать епт
ну так сделай
$var = CONST;
echo "wdwddw $var dwdwdw"; -
Март 5, 2009, 9:08 п.п., спустя 11 минут 36 секунд
та некрасиво так, что я в переменную константу записывать буду? какой тогда смысл в той константе -
-
Март 5, 2009, 9:10 п.п., спустя 58 секунд
сделай константы через регистри и в строке делай так
echo "{Registry::get('CONSTANT')}"
но хз будет воркать или нет -
Март 5, 2009, 9:15 п.п., спустя 5 минут 2 секунды
не работает. Я тут думаю может в попу те константы и все строками делать? Не упадет ли производительность при сравнении в конструкциях switch? -
Март 5, 2009, 9:26 п.п., спустя 10 минут 12 секунд
извращения:<?php
define('CONST', 'Йа - константа!');
extract(get_defined_constants());
echo "Ты константа? — <h1>$CONST</h1>";
не работает. Я тут думаю может в попу те константы и все строками делать? Не упадет ли производительность при сравнении в конструкциях switch?
— эффективное программирование на PHP — оссобенно внимательно раздел "Вступление в эффективное программирование". После прочтения все подобные вопросы должны исчезнуть.
В твоем случае — задавай свои параметры переменными и не мучайся. -
Март 5, 2009, 9:30 п.п., спустя 3 минуты 55 секунд
Конкатентация константы со строкой это единственный не кошмар в этом кошмарном коде. -
Март 5, 2009, 9:32 п.п., спустя 2 минуты 52 секунды
Конкатентация константы со строкой это единственный не кошмар в этом кошмарном коде.
А что там кошмарного? Поподробнее пожалуйста, я только учусь, и рад советам! -
-
-
Март 5, 2009, 9:35 п.п., спустя 1 минуту 8 секунд
блин, что с форумом, оно вместо \ пишет #38
это фича
А зачем она? Или подкалуешь?
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!