Получить позицию $ _SESSION с & - PullRequest
       14

Получить позицию $ _SESSION с &

0 голосов
/ 28 октября 2010

Почему этот код не работает?

public function get($key) {
    return isset($_SESSION[$key]) ? &$_SESSION[$key] : false;
}

Error

Parse error: syntax error, unexpected '&' in C:\Arquivos de programas\EasyPHP-5.3.3\www\myphpblog\code\sessionstorage.class.php on line 12

Спасибо.

Ответы [ 3 ]

0 голосов
/ 28 октября 2010

Синтаксис для возврата ссылки в PHP: &<function name>(){ return <referece> } Кроме того, Only variable references should be returned by reference

Итак, вам, вероятно, следует переписать его:

function &get($key) {
    $a = false;
    if( isset($_SESSION[$key]) )
        return $_SESSION[ $key ];
    return $a;
}
0 голосов
/ 28 октября 2010

Просто удалите & и все заработает. Д ...

0 голосов
/ 28 октября 2010

Тернарный оператор - это действительно три выражения , например, expr1?expr2: expr3;

См. Примечания в возвращаемых ссылках :

Если вы попытаетесь вернуть ссылку из функции с синтаксисом: return ($this->value); это не сработает, когда вы пытаетесь вернуть результат выражения, а не переменной, по ссылке.Вы можете возвращать переменные только по ссылке из функции - ничего больше.

...