On Thu, 2003-09-25 at 12:47, Jeff McKeon wrote:
> I've just picked up a more advanced book on PHP and it has a lot of
> example code in it. I understand most of it but some things I'm seeing I
> don't understand. Like the following...
>
> code:
> ------------------------------------------------------------------------
> --------
>
> $couponcode = (! empty($_REQUEST['couponcode'])) ?
> $_REQUEST['couponcode'] : NULL;
> ------------------------------------------------------------------------
> --------
>
> I think this is saying:
>
> If the global variable couponcode is not empty, then the variable
> '$couponcode' is equal to "$_REQUEST['couponcode']" otherwise it gets a
> "NULL" value.
>
> What's throwing me is the use of the "!" and "?" and ":"
Ternary operator, if the first expression evaluates to true then it
returns the result of the second expression, otherwise it returns the
result of the third expression. The ! is part of the first expression.
>
> If What I suspect is correct, I've never seen an if-then statement like
> this. If it is a replacement for an IF-Then statement then it's much
> cleaner and I'd like to use it.
>
> another one is:
>
>
> code:
> ------------------------------------------------------------------------
> --------
> IF (!strcmp($operator, '+')) {
> $result = $num1 + $num2
> }
> ------------------------------------------------------------------------
> --------
>
> I've looked up strcmp() and know it's used to compair two strings. The
> $operator variable in the script that this was taken from is set to
> either "-", "+", "*" or "/". What I don't understand here is what the
> "!" in front of strcmp() means.
>
> Can anyone break down the code for me and explain the parts?
This is a short form for testing if the strings are equal. Rather than
test if strcmp( x, y ) == 0 which requires a comparison, a single
boolean operator is applied so that if 0 is returns the ! makes it true.
This is generally a carry forward from C coding style, where I believe
the ! style runs through the processor faster than the == style.
HTH,
Rob.
--
.------------------------------------------------------------.
| InterJinn Application Framework - http://www.interjinn.com |
:------------------------------------------------------------:
| An application and templating framework for PHP. Boasting |
| a powerful, scalable system for accessing system services |
| such as forms, properties, sessions, and caches. InterJinn |
| also provides an extremely flexible architecture for |
| creating re-usable components quickly and easily. |
`------------------------------------------------------------'
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php