Greenguy's Board

Greenguy's Board (http://www.greenguysboard.com/board/index.php)
-   Programming & Scripting (http://www.greenguysboard.com/board/forumdisplay.php?f=15)
-   -   Terinary operator in PHP (http://www.greenguysboard.com/board/showthread.php?t=18345)

Useless 2005-04-06 09:40 PM

Terinary operator in PHP
 
Fuck me with a stick.

I have this piece of code which pulls words from flatfile databases:
Code:

$sentence = ($type ?
                "$word1[0] $word2[0] $word3[0] $word4[0]" :
                "$word1[0] $word2[0] $word3[0] $word4[0] $word5[0]");

In it's present form, I can only produce two different layouts for word strings, aka sentences. I'd like to be able to offer more layouts, but I can't figure out how to add another line without getting an error. Damn it. It's that fucking colon.

cd34 2005-04-06 10:00 PM

that statement means:

Code:

if ($type) {
  $sentence = "$word1[0] $word2[0] $word3[0] $word4[0]";
} else {
  $sentence = "$word1[0] $word2[0] $word3[0] $word4[0] $word5[0]";
}


Useless 2005-04-06 10:56 PM

Neat, thanks. ;) A little more understandable for a guy like me. I swapped out the original code with yours and all worked well. Here is where I run into trouble though. I'd like to be able to add a third expression, but can't figure out how. My top secret script 'chooses' which sentence to to create from the two current expressions. Is it possible to add a third expression to that? It works fine as is, but could be made better in the future if I was able to add more junk.

cd34 2005-04-06 11:23 PM

$type would need to have more than a true/false value.

you could do something like

Code:

switch ($type) {
  case 0:
    $sentence = "$word1[0] $word2[0] $word3[0] $word4[0]";
    break;
  case 1:
    $sentence = "$word1[0] $word2[0] $word3[0] $word4[0] $word5[0]";
    break;
  case 2:
    asdfhaskdhflasjdhflashdf
    break;
  default:
    asdjhflasjhdfljashdflkjhasdf
    break;
}

Then you just have to set $type to something other than 0/1 or false/true.

Useless 2005-04-06 11:41 PM

Woohoo! It works! Thank you.
With $type = mt_rand(0,3); it works just as I had hoped.

You da man |thumb

cd34 2005-04-06 11:43 PM

nah, just one of 3.1 billion.


All times are GMT -4. The time now is 12:31 PM.

Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© Greenguy Marketing Inc