Nathan Nobbe wrote:
all,
as we have discussed previously, php does not have support for retrieving
array values on the same line in which they are returned. i have created a
simple workaround, and would like to share. first there is the class (w/
other features omitted for the post)
<?php
class ArrayClass {
private $theArray = null;
private function __construct($theArray) {
if(!is_array($theArray)) {
throw UnexpectedValueException('theArray must be an array!');
}
$this->theArray = $theArray;
}
public static function create($theArray) {
return new ArrayClass($theArray);
}
public function __get($name) {
if($this->isValidKey($name)) {
return $this->theArray[$name];
}
}
private function isValidKey($name) {
$isValidKey = false;
if(array_key_exists($name, $this->theArray)) {
$isValidKey = true;
}
return $isValidKey;
}
}
?>
and then there is the example,
<?php
include('ArrayClass.php');
function sillyFunc() {
return array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
}
echo ArrayClass::create(sillyFunc())->a . PHP_EOL;
?>
notice what would be
echo sillyFunc()['a'] . PHP_EOL;
becomes what you see above.
-nathan
ps. sorry for all the extra newlines; im trying to work w/ the alterations
the list server is applying to my posts so bear w/ me :D
So, I guess my question would be, why not take it one level deeper.
<?php
include('ArrayClass.php');
function sillyFunc() {
return ArrayClass::create(array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4));
}
echo sillyFunc()->a . PHP_EOL;
?>
--
Jim Lucas
"Some men are born to greatness, some achieve greatness,
and some have greatness thrust upon them."
Twelfth Night, Act II, Scene V
by William Shakespeare
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php