Re: Like ternary but without the else.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Chris W. Parker wrote:
Hello,

I couldn't find this anywhere on google or PHP's site but I'm pretty
sure there's an answer to it.

How can I turn the following into something that resembles the ternary
operator?

write an extension to the php engine? don't think it exists.


<?php

  if($something)
  {
    $this = $that;
  }

just do:


if ($something) $this = $that;


..personally I don't like braceless if statements.


?>

or one of these might work for you;

$this = ($something) ? $that: $this; // if $this already exists.

or

$this = ($something) ? $that: null; // if $this does not exist and your happy to use is_null()


I seem to remember it looking something like:

<?php

  $this = ($something) || $that;

?>

btw your not using 'this' as an actual variable name are you? (unless its on purpose for doing bad(tm) things in php4 :-)


Although this isn't syntactically wrong, i.e. no errors, it did not do what I hoped it would do. (What it does is assign 1/true.)


what it does is assign the result of the expression (($something) _or_ $that) to $this.

if either of those equate to true (dont forget php autotypecasts),
then the expression is true, its a boolean 'or' so it will always make
$this a boolean, which print as:

php -r 'echo true;'	// echos 1
php -r 'echo false;'	// echos ''
	


Thanks! Chris.

p.s. No need to respond if your suggestion is:

<?php

  if($something) { $this = $that; }

?>


-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux