-
-
Save JeffreyWay/1268154 to your computer and use it in GitHub Desktop.
<?php | |
# Instead of | |
$name = 'Jeff'; | |
switch ($name) { | |
case 'Jeff': | |
echo "I'm Jeff"; | |
break; | |
case 'Joe': | |
echo "I'm Joe"; | |
break; | |
case 'John': | |
echo "I'm John"; | |
break; | |
} | |
# Do | |
$lookup = array( | |
"Jeff" => "I'm Jeff", | |
"Joe" => "I'm Joe", | |
"John" => "I'm John", | |
"default" => "I'm Error" | |
); | |
echo $lookup[$name]; | |
# Or if you need a default | |
echo isset($lookup[$name]) ? $lookup[$name] : $lookup['default']; |
Haven't tested it, but I'd also imagine that a lookup will be somewhat faster.
Maybe I'm confusing PHP with JavaScript, but wouldn't you get an error about an undefined key if you did echo $lookup['Dave'] since the attribute doesn't exist in the array?
Cleaner code, but what about performing more complex tasks than echo-ing?
@will - Was just a quick example. You can set a default. Updated the code above to show a quick solution.
@Abulsman - Yeah, it just depends on your needs. This works really well for quick lookup type stuff, where you need to set a value or something.
You probably could use a Closure for more complex tasks.
Anyone catch the Zelda 2 reference? :)
@willsteinmetz You'll get a Notice not an error.
Yeah, sorry -- notice, not error. Just do a quick test to see if the key exists.
I do this when creating custom form errors. Setup an errors array and then use the cleansed $_POST key submitted as the lookup. Works great.
Handy solution with simple return values. In case of more complex actions, I usually use callback functions.
You'd likely want to set a default as well. :)