Этот вопрос немного изменился, поэтому я интерпретирую то, что вы хотите, потому что это неясно. Я понял, что вам нужен взаимоисключающий обмен сообщениями. Вы делаете это с помощью цепочки операторов if-then-else.
<?php
session_start();
if (empty($_SESSION['count'])) {
$_SESSION['count'] = 1;
} else {
$_SESSION['count']++;
}
// Display message
if ($_SESSION['count'] == 5){
echo "<p>This is your {$_SESSION['count']}th time! Glad to have you back!</p>";
} else if ($_SESSION['count'] == 10) {
echo "<p>This is your {$_SESSION['count']}th time! You must love it here</p>";
} else if ($_SESSION['count'] == 20) {
echo "<p>Hi again, this is your {$_SESSION['count']}th time! This will restart the page. Thanks for visiting so much!</p>";
$_SESSION['count'] = 0;
} else {
echo "<p>Hello Visitor! You have seen this page {$_SESSION['count']} times!</p>";
}
Более простой способ сделать это - использовать оператор switch.
<?php
session_start();
if (empty($_SESSION['count'])) {
$_SESSION['count'] = 1;
} else {
$_SESSION['count']++;
}
// Display message
switch ($_SESSION['count']) {
case 5:
echo "<p>This is your {$_SESSION['count']}th time! Glad to have you back!</p>";
break;
case 10:
echo "<p>This is your {$_SESSION['count']}th time! You must love it here</p>";
break
case 20:
echo "<p>Hi again, this is your {$_SESSION['count']}th time! This will restart the page. Thanks for visiting so much!</p>";
$_SESSION['count'] = 0;
break
default:
echo "<p>Hello Visitor! You have seen this page {$_SESSION['count']} times!</p>";
}
Некоторые советы:
- Нет причин для вычисления 5,10,20 сообщений, потому что вы используете равенство, поэтому они должны быть 5-м, 10-м, 20-м. Это бесполезные вычисления. Это тоже не код DRY. Было бы лучше, если бы у вас была функция, которая выводит это сообщение, а не тот же вычислительный код.
- Я использовал интерполяцию строк, так как это легче читается и легче обновляется по сравнению с большим количеством конкатенации строк. Когда у вас есть массив с одинарными кавычками, вы выполняете эту работу, заключая переменную в {}, как я сделал здесь:
{$_SESSION['count']}th time!
Вы используете двойные кавычки, чтобы указать PHP, что переменные вставляются в строку. - Не используйте конечный тег php
?>
в конце скрипта. В этом нет необходимости и могут возникнуть некоторые странные ошибки вывода, когда вы включаете скрипты.
Надеюсь, вы видите, что это будет генерировать только одно сообщение за посещение страницы.