Почему фигня?коротко и ясно.если переменная тотал истина,то переменной а присваивается слово непроч... а если она ложна,тоесть равна нулю то переменная а остается пустой
BupTyo3 (09.10.2010/20:22)
Почему фигня?коротко и ясно.если переменная тотал истина,то переменной а присваивается слово непроч... а если она ложна,тоесть равна нулю то переменная а остается пустой
Неа, интерпретатор по другом разберет его: если $a равно $total, то действие будет "Непрочитанное"(поскольку нет echo, то просто выдаст ошибку разбора, если $a не равно $total, то не будет нифига.
BupTyo3 (09.10.2010/19:36)
А может лучше вот так?
$a = $total ? 'Непрочитанное' : '';
Если не ошибаюсь, то правильно так будет:
$a = ($total ? 'Непрочитанное' : '');
Не сильно полезный, но пригодится
А Я немного по своему сделал этот хак.... просто старую функцию function forum_new в файле incfiles/func.php заменте на:
function forum_new($mod = 0) {
////////////////////////////////////////////////////////////
// Счетчик непрочитанных тем на форуме //
////////////////////////////////////////////////////////////
// $mod = 0 Возвращает число непрочитанных тем //
// $mod = 1 Выводит ссылки на непрочитанное //
////////////////////////////////////////////////////////////
global $user_id, $rights;
if ($user_id) {
$req = mysql_query("SELECT COUNT(*) FROM `forum`
LEFT JOIN `cms_forum_rdm` ON `forum`.`id` = `cms_forum_rdm`.`topic_id` AND `cms_forum_rdm`.`user_id` = '" . $user_id . "'
WHERE `forum`.`type`='t'" . ($rights >= 7 ? "" : " AND `forum`.`close` != '1'") . "
AND (`cms_forum_rdm`.`topic_id` Is Null
OR `forum`.`time` > `cms_forum_rdm`.`time`)");
$total = mysql_result($req, 0);
if ($total == 0){
$a = '';
$b = '';
}else{
$a = '<p><a href="index.php?act=new">Непрочитанное</a> ';
$b = '</p>';
}
if ($mod)
echo $a . ($total ? '<span class="red">(<b>' . $total . '</b>)</span>' : '') . $b;
else
return $total;
} else {
if ($mod)
echo '<p><a href="index.php?act=new">Последние 10 тем</a></p>';
else
return false;
}
}
И как? Что выводит эта функция?
Z3RO (13.10.2010/20:33)
Неа, интерпретатор по другом разберет его: если $a равно $total, то действие будет "Непрочитанное"(поскольку нет echo, то просто выдаст ошибку разбора, если $a не равно $total, то не будет нифига.
во первых - $а равно $тотал выглядит не так: $a = $total; а вот так: $a == $total; во вторых - откуда ты можешь знать, как будет анализировать интерпретатор тот или иной код, если не знаешь элементарного php-синтаксиса
Виртуоз вам верный пример привел:
$a = $total ? 'Непрочитанное: ' : '';
//это условие аналогично можно записать с оператором if
if ($total) {
echo 'Непрочитанное: ';
}
оба условия верны.
Может кому и пригодится)))