| 
| 
| 
| #212924 - 2017-11-21 07:57 PM  IIF() |  
| ShaneEP   MM club member
 
       
   Registered:  2002-11-29
 Posts: 2127
 Loc:  Tulsa, OK
 | 
This may or may not be considered a bug. But it seems weird to me though, so figured I would bring it to light to see what others think.
 It appears that IIF() evaluates data in all blocks, instead of just the block that should be returned.
 
 Example...
 
 This fails because array[3] is out of bounds, even though in my opinion it should only evaluate the code that says array[0] and ignore the other block.$array = '1','2','3'
$test = IIf(1, $array[0], $array[3])
 I ran across this issue, trying to golf down some code, so it probably wouldn't be an issue for most uses.  But what do you guys think?
 |  
| Top |  |  |  |  
| 
| 
| #212929 - 2017-11-21 09:58 PM  Re: IIF()
[Re:  Jochen] |  
| ShaneEP   MM club member
 
       
   Registered:  2002-11-29
 Posts: 2127
 Loc:  Tulsa, OK
 | 
But there are legitimate uses for such logic...Let me expound on the example a bit..
 If $x is 5 or less it works, but will cause error when above 5, even though the second block would function.
 
 $array = '0','1','2','3','4','5'
$x = 50
$test = IIf($x<6, $array[$x], $array[$x mod 10])
 Edited by ShaneEP (2017-11-21 09:59 PM)
 |  
| Top |  |  |  |  
| 
| 
| #212932 - 2017-11-22 05:04 PM  Re: IIF()
[Re:  Jochen] |  
| ShaneEP   MM club member
 
       
   Registered:  2002-11-29
 Posts: 2127
 Loc:  Tulsa, OK
 | 
I agree with what you're saying.  But in my mind, IIF() should act exactly like an If, Else, Endif.  And in currently doesn't.
 If this code works without error...
 
 Then the IIF equivalent should as well, in my opinion.$array = '0','1','2','3','4','5'
$x = 51
If $x < 6
   $test = $array[$x]
Else
   $test = $array[$x mod 10]
Endif
 $array = '0','1','2','3','4','5'
$x = 51
$test = IIf($x < 6, $array[$x], $array[$x mod 10]) |  
| Top |  |  |  |  
| 
| 
| #212933 - 2017-11-22 05:17 PM  Re: IIF()
[Re:  ShaneEP] |  
| Allen   KiX Supporter
 
       
 Registered:  2003-04-19
 Posts: 4562
 Loc:  USA
 |  |  
| Top |  |  |  |  
 Moderator:  ShaneEP, Arend_, Jochen, Radimus, Glenn Barnas, Allen, Ruud van Velsen, Mart
 
 | 
| 
 
| 0 registered
and 360 anonymous users online. 
 | 
 |  |