On 15 Mar 2012, at 18:31, Stuart Dallas wrote:
> On 15 Mar 2012, at 15:13, Daniel Brown wrote:
>
>> On Thu, Mar 15, 2012 at 11:04, Tedd Sperling <[email protected]> wrote:
>>> Hi gang:
>>>
>>> What's a better/shorter way to write this?
>>>
>>> $first_name = $_SESSION['first_name'] ? $_SESSION['first_name'] : null;
>>> $first_name = isset($_POST['first_name']) ? $_POST['first_name'] :
>>> $first_name;
>>> $_SESSION['first_name'] = $first_name;
>>
>> A simple reusable function and pass-through variable is one method:
>>
>> <?php
>>
>> session_start();
>> $_SESSION['first_name'] = $first_name =
>> thisorthat(@$_POST['first_name'],null);
>>
>> function thisorthat($a,$b) {
>> return isset($a) ? $a : $b;
>> }
>>
>> ?>
>
> The @ prefix is banned from all code I go anywhere near - it's evil! I've
> used the following 'V' function for a long time, primarily for accessing the
> superglobals but it works for any array.
>
> <?php
> session_start();
> $_SESSION['first_name'] = $first_name = V($_SESSION, 'first_name');
>
> function V($arr, $key, $def = null) {
> return isset($arr[$key]) ? $arr[$key] : $def;
> }
> ?>
That'll teach me for not reading the code properly...
<?php
session_start();
$_SESSION['first_name'] = V($_POST, 'first_name', V($_SESSION, 'first_name'));
function V($arr, $key, $def = null) {
return isset($arr[$key]) ? $arr[$key] : $def;
}
?>
-Stuart
--
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php