|
|
|
| Добрый день подскажите пожалуйста как можно укротить этот код:
<?php
$id_serv= $_SERVER['REQUEST_URI'];
if ($id_serv == "/news.php") {
echo '<a href="news.php" id="text_menu_top"><strong>Новости</strong></a>';
} else {
echo '<a href="news.php" id="text_menu_top">Новости</a>';
}
?>
|
Спасибо! | |
|
|
|
|
|
|
|
для: tima2010
(10.02.2011 в 19:15)
| |
<?php
$news_text = ($_SERVER['SCRIPT_NAME'] == '/news.php') ? '<strong>Новости</strong>'
: 'Новости';
echo '<a href="news.php" id="text_menu_top">'. $news_text .'</a>';
|
SCRIPT_NAME вместо REQUEST_URI, т.к. скорее всего будут передаваться ж какие-то параметры старнице. | |
|
|
|
|
|
|
|
для: tima2010
(10.02.2011 в 19:15)
| | Добрый вечер!
Можно использовать тринарный оператор сравнения и увеличить повторяемость кода:
<?$id_serv= $_SERVER['REQUEST_URI'];
$text = "Нововости";
$block = (($a == "/news.php") ? "<strong>".$text."<strong>" : $text);
echo "<a href='news.php' id='text_menu_top'>".$block."</a>";
|
| |
|
|
|
|
|
|
|
для: DJ Paltus
(10.02.2011 в 19:37)
| | > тринарный оператор
*шепотом* тернарный. | |
|
|
|
|
|
|
|
для: neadekvat
(10.02.2011 в 19:38)
| | Бугогашечки. А я его все тринарным называю... Темнота. ) | |
|
|
|
|
|
|
|
для: DJ Paltus
(10.02.2011 в 19:37)
| | опечаточка
<?
$block = (($id_serv == "/news.php") ? "<strong>".$text."<strong>" : $text);
|
| |
|
|
|
|
|
|
|
для: DJ Paltus
(10.02.2011 в 19:44)
| | 4 скобки ->-лишние + одинарные кавычки ( ведь зачем напрягать интерпретатор , где явно нет переменных )? | |
|
|
|
|
|
|
|
для: Косорылый
(10.02.2011 в 22:30)
| | Можно поподробнее? Я не понял. | |
|
|
|
|
|
|
|
для: DJ Paltus
(11.02.2011 в 02:08)
| | Если строка записана в двойных кавычка ("), то интерпритатор ищет в ней переменные, спесимволы..
А если в одинарных (') - то ничего не ищет, а оперирует с ней как с чем-то цельным, неизменемым, т.е. внутри не капается.
И Косорылый указывает на то, что двойные кавычки лучше использовать, только если на то есть необходимость.
В данном случаи ее не было. К тому же, вы изменили исходный html-код автора. Лично мне не нравится, как внешне выглядят атрибуты тегов, обернутые в одинарные кавычки. Но конкретно это - уже мои тараканы, конечно :) | |
|
|
|
|
|
|
|
для: neadekvat
(11.02.2011 в 09:54)
| | Говоря откровенно, овсем не копаться в строке интерпретатор не может.
Просто в одном случае конечный автомат ожидает трех символов (апостроф, обратный слэш, конец потока) а в другом - пяти (кавычка, обратный слэш, знак доллара, конец потока) .
Разница, как видим, даже не в два раза. Фигурную скобку намеренно не считаю, потому что без доллара непосредственно рядом она смысла не несет, а значит отдельной ветви не тркебует. | |
|
|
|
|
|
|
|
для: Trianon
(11.02.2011 в 10:19)
| | Логично.
Правда, я забыл добавить, что все это экономия на спичках.
Но вот для читабельности кода моя рекомендация ставить двойные кавычки только при необходимости (по моему, конечно, мнению) полезна. Ибо, если интерпритатору глубоко пофиг, сколько он строк уже отпахал за сегодня, то глазки то и мозг имеют свойство уставать =\ | |
|
|
|
|
|
|
|
для: neadekvat
(11.02.2011 в 09:54)
| | Век живи, век учись!
Я и исходный код-то поменял, потому что всегда так пишу: если html голый, то двойные кавычки, если внутри php, то одинарные. Акцент, так сказать.
А разницу теперь понял, спасибо. | |
|
|
|
|
|
|
|
для: tima2010
(10.02.2011 в 19:15)
| | Я бы сделал так:
<?
$Url='/news.php';
$Анкор ='Новости';
$Тег ='<strong>'.$Анкор.'</strong>';
$Анкор = $_SERVER['REQUEST_URI']!== $Url ? $Анкор : $Тег ;
?>
<a href="news.php" id="text_menu_top"><?php echo $Анкор ?></a>
|
Максимально вынести Html из скрипта | |
|
|
|