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 <tedd.sperling@xxxxxxxxx> 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