149 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Ternary operator
 | |
| -----
 | |
| <?php
 | |
| 
 | |
| // ternary
 | |
| $a ? $b : $c;
 | |
| $a ?: $c;
 | |
| 
 | |
| // precedence
 | |
| $a ? $b : $c ? $d : $e;
 | |
| $a ? $b : ($c ? $d : $e);
 | |
| 
 | |
| // null coalesce
 | |
| $a ?? $b;
 | |
| $a ?? $b ?? $c;
 | |
| $a ?? $b ? $c : $d;
 | |
| $a && $b ?? $c;
 | |
| -----
 | |
| array(
 | |
|     0: Expr_Ternary(
 | |
|         cond: Expr_Variable(
 | |
|             name: a
 | |
|             comments: array(
 | |
|                 0: // ternary
 | |
|             )
 | |
|         )
 | |
|         if: Expr_Variable(
 | |
|             name: b
 | |
|         )
 | |
|         else: Expr_Variable(
 | |
|             name: c
 | |
|         )
 | |
|         comments: array(
 | |
|             0: // ternary
 | |
|         )
 | |
|     )
 | |
|     1: Expr_Ternary(
 | |
|         cond: Expr_Variable(
 | |
|             name: a
 | |
|         )
 | |
|         if: null
 | |
|         else: Expr_Variable(
 | |
|             name: c
 | |
|         )
 | |
|     )
 | |
|     2: Expr_Ternary(
 | |
|         cond: Expr_Ternary(
 | |
|             cond: Expr_Variable(
 | |
|                 name: a
 | |
|                 comments: array(
 | |
|                     0: // precedence
 | |
|                 )
 | |
|             )
 | |
|             if: Expr_Variable(
 | |
|                 name: b
 | |
|             )
 | |
|             else: Expr_Variable(
 | |
|                 name: c
 | |
|             )
 | |
|             comments: array(
 | |
|                 0: // precedence
 | |
|             )
 | |
|         )
 | |
|         if: Expr_Variable(
 | |
|             name: d
 | |
|         )
 | |
|         else: Expr_Variable(
 | |
|             name: e
 | |
|         )
 | |
|         comments: array(
 | |
|             0: // precedence
 | |
|         )
 | |
|     )
 | |
|     3: Expr_Ternary(
 | |
|         cond: Expr_Variable(
 | |
|             name: a
 | |
|         )
 | |
|         if: Expr_Variable(
 | |
|             name: b
 | |
|         )
 | |
|         else: Expr_Ternary(
 | |
|             cond: Expr_Variable(
 | |
|                 name: c
 | |
|             )
 | |
|             if: Expr_Variable(
 | |
|                 name: d
 | |
|             )
 | |
|             else: Expr_Variable(
 | |
|                 name: e
 | |
|             )
 | |
|         )
 | |
|     )
 | |
|     4: Expr_BinaryOp_Coalesce(
 | |
|         left: Expr_Variable(
 | |
|             name: a
 | |
|             comments: array(
 | |
|                 0: // null coalesce
 | |
|             )
 | |
|         )
 | |
|         right: Expr_Variable(
 | |
|             name: b
 | |
|         )
 | |
|         comments: array(
 | |
|             0: // null coalesce
 | |
|         )
 | |
|     )
 | |
|     5: Expr_BinaryOp_Coalesce(
 | |
|         left: Expr_Variable(
 | |
|             name: a
 | |
|         )
 | |
|         right: Expr_BinaryOp_Coalesce(
 | |
|             left: Expr_Variable(
 | |
|                 name: b
 | |
|             )
 | |
|             right: Expr_Variable(
 | |
|                 name: c
 | |
|             )
 | |
|         )
 | |
|     )
 | |
|     6: Expr_Ternary(
 | |
|         cond: Expr_BinaryOp_Coalesce(
 | |
|             left: Expr_Variable(
 | |
|                 name: a
 | |
|             )
 | |
|             right: Expr_Variable(
 | |
|                 name: b
 | |
|             )
 | |
|         )
 | |
|         if: Expr_Variable(
 | |
|             name: c
 | |
|         )
 | |
|         else: Expr_Variable(
 | |
|             name: d
 | |
|         )
 | |
|     )
 | |
|     7: Expr_BinaryOp_Coalesce(
 | |
|         left: Expr_BinaryOp_BooleanAnd(
 | |
|             left: Expr_Variable(
 | |
|                 name: a
 | |
|             )
 | |
|             right: Expr_Variable(
 | |
|                 name: b
 | |
|             )
 | |
|         )
 | |
|         right: Expr_Variable(
 | |
|             name: c
 | |
|         )
 | |
|     )
 | |
| ) | 
