Как зациклить переменные сеанса и установить новые, если они установлены

В основном я хочу проверить, установлено ли число, если не установлено, установить его, иначе увеличить число и установить увеличенное число, если задано максимальное число (12), выйти и выдать ошибку. Логика, кажется, побеждает меня.

"if is not set *number*, set it;
stop the loop;
else;"
if is set and not empty, number++;
set the new incremented number;
stop the loop;"

Как мне продолжить цикл, чтобы он добрался до трех, я застрял на двух.
«

<?php
session_start();
//session_destroy();
//exit;//////////check if last channel is set//////

if (isset($_SESSION['channel12']) && !empty($_SESSION['channel12'])){
echo 'You have reached maximum channels for this package';
} else {
$channels = range(1,12);
$number=0;

foreach($channels as $channel){
//$number++;
$new_channel = $channel + 1;//$number;///////////////Try the first channel and if not set use it/////////
if (!isset($_SESSION['channel'.$channel.''])){
$_SESSION['channel'.$channel.''] = 'channel'.$channel;
var_dump($_SESSION);
break;
///////////////Else try next channel/////////
} else if (isset($_SESSION['channel'.$channel.'']) && !empty($_SESSION['channel'.$channel.''])) {
$_SESSION['channel'.$new_channel.''] = $new_channel;
var_dump($_SESSION);
break;
} else {

}
}
}
?>

Благодарю.

0

Решение

попробуй это

<?php
session_start();

//////////check if last channel is set//////
if (isset($_SESSION['channel12']) && !empty($_SESSION['channel12'])) {
echo 'You have reached maximum channels for this package';

} else {
$channels = range(1, 12);
$number = 0;

foreach ($channels as $channel) {
$new_channel = $channel + 1;
//$number;

///////////////Try the first channel and if not set use it/////////
if (!isset($_SESSION['channel' . $channel . ''])) {
$_SESSION['channel' . $channel . ''] = 'channel' . $channel;
var_dump($_SESSION);
break;
///////////////Else try next channel/////////
}
}
}
?>
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]