Проверять сеансы в массиве? - PullRequest
1 голос
/ 27 июля 2010

хмм, у меня есть домашнее задание, его 2 часа, и я до сих пор не понимаю: |

как это

$sessions['lefthand'] = 'apple';
$sessions['righthand'] = '';
$sessions['head'] = 'hat';
$sessions['cloth'] = '';
$sessions['pants'] = '';

// here is the homework function
CheckSession('lefthand,righthand,head,cloth,pants');

у нас есть строка "левая, правая, голова, ткань, штаны" Вопрос в следующем: «Как мы можем проверить, не является ли пять сеансов нулевым или существующим, и показать, какой сеанс пуст (если есть пустой сеанс), если все существуют, то возвращает true?

empty righthand , pants, and cloth.

вот как я об этом думаю

  1. взорвать его на массивы
  2. отметьте один раз, если! Null id существует

вот прогресс, который я сделал * edit4,:)

function CheckSession($sessions){
$all_sessions_exist = true;
$keys = explode(',',$sessions);
$error = array();
    // Search for Session that are not exist
    foreach ($keys as $key) {
        if (!isset($_SESSION[$key]) && empty($_SESSION[$key])) {
            echo "no $key</br>";
            $all_sessions_exist = false; 
        }
    }
return $all_sessions_exist;
}

Спасибо, что заглянули

Адам Рамадан

Ответы [ 3 ]

2 голосов
/ 27 июля 2010

Поскольку это домашнее задание, вы не получите решения. Вы на правильном пути, хотя. explode() это разделитель. Вы можете пройти через него с помощью foreach и использовать empty(), чтобы проверить, установлены ли они. Вы можете получить доступ к сессиям, как $_SESSION[$key]. Сохраняйте массив совпадающих.

0 голосов
/ 27 июля 2010

Просто очистка вашей функции

function CheckSession($sessions)
{
    $session = explode(',',$sessions);
    $return = array();
    foreach ($session as $s)
    {
        $return[$s] = (isset($_SESSION[$s]) && !empty($_SESSION[$s]) ? true : false)
    }
    return $return;
}

$sessions['lefthand'] = 'apple';
$sessions['righthand'] = '';
$sessions['head'] = 'hat';
$sessions['cloth'] = '';
$sessions['pants'] = '';

И проверяющая часть

// here is the homework function
$Results = CheckSession('lefthand,righthand,head,cloth,pants');

Редактировать

//$value1= false; // Commented out so does not get set
$value2= false; //Still set to a bool

error_reporting(E_ALL);

empty($value1); // returns false but still strikes E_NOTICE ERROR
empty($value2); // returns false with no error

Обратите внимание, пустое не вызываетошибка, но этот пример повлияет на многие другие функции php.

0 голосов
/ 27 июля 2010
function CheckSession($string){
    $all_sessions_exist = true; #this will change if one of the session keys does not exist
    $keys = explode(',', $string); #get an array of session keys
    foreach($keys as $key){
        if(isset($_SESSION[$key])) {
            if(!empty($_SESSION[$key])) 
                echo '$_SESSION['.$key.'] is set and contains "'.$_SESSION[$key].'".'; #existing non-empty session key
            else echo '$_SESSION['.$key.'] is set and is empty.' ;
        }else {
             echo '$_SESSION['.$key.'] is not set.'; #key does not exist
             $all_sessions_exist = false; #this will determine if all session exist
        }

        echo '<br />'; #formatting the output
    }

    return $all_sessions_exist; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...