|  Download [comment]: # (This file is part of PcGen, PHP Code Generation support package. Copyright 2020 Kjell-Inge Gustafsson, kigkonsult, All rights reserved, licence GPL 3.0) CtrlStructMgrThe `CtrlStructMgr`manages control structure with 
condition ( operand1 comparisonOperator operand2 )
operand : scalar, variable, class property or (class-)function
comparisonOperator : class constants exists
boolean condition :  variable/property, (class-)function
scalar value
_if_/_elseif_/_else_  (else without condition), if default
_while_
_do-while_
_switch_
_case_     inside a _switch_ 'body', will automatically add 'break' after
_default_  same, but no condition
 The logic body is set using CtrlStructMgr::setBody() CtrlStructMgr MethodsInherited [Common methods] 
* ```operand``` _string_ variable
* ```compOp``` _string_       default '==', constant exists
* ```operand2``` _string_ variable
* ```exprType``` _int_  default 'if', constant exists
* Return _static_
* Throws _InvalidArgumentException_
---
 
Return _array_, result code rows (null-bytes removed) no trailing eol
Throws _RuntimeException_
 
* Return _array_, result code rows (null-bytes removed) no trailing eol
* Throws _RuntimeException_
---
 
Set expression type
Return _static_
 
 
 
 
 
Convenient ```CtrlStructMgr::setExprType()``` aliases 
Return _static_
 
* Set single cond. (boolean) scalar
* ```setScalar``` _bool_|_float_|_int_|_string_
* Return _static_
* Throws _InvalidArgumentException_
 
Set single cond. (boolean) PHP expression
Return _static_
Throws _InvalidArgumentException_
 
* Set cond. (boolean) as single variable (string), classVariable or function invoke
* ```singleOp``` _string_|[EntityMgr]|[FcnInvokeMgr]
* Return _static_
* Throws _InvalidArgumentException_
 
Set single operand as this class property
Convenient CtrlStructMgr::setSingleOp() alias
Return _static_
Throws _InvalidArgumentException_
 
* Set single operand as this class function call (no args)
* Convenient CtrlStructMgr::setSingleOp() alias
* ```singleOp``` _string_
* Return _static_
* Throws _InvalidArgumentException_
---
 
Set operand1/operand2 comparison operator
Return _static_
Throws _InvalidArgumentException_
 
* Set first operand
* ```operand``` _bool_|_float_|_int_|_string_|[EntityMgr]|[FcnInvokeMgr]
* Return _static_
* Throws _InvalidArgumentException_
 
Set first operand as this class property
Convenient CtrlStructMgr::setOperand1() alias
Return _static_
Throws _InvalidArgumentException_
 
* Set second operand
* ```operand``` _bool_|_float_|_int_|_string_|[EntityMgr]|[FcnInvokeMgr]
* Return _static_
* Throws _InvalidArgumentException_
 
Set first operand as this class property
Convenient CtrlStructMgr::setOperand2() alias
Return _static_
Throws _InvalidArgumentException_
 if Example<?php
$code = FcnFrameMgr::init()
    ->setName( 'someFunction' )
    ->addArgument( 'value', FcnFrameMgr::STRING_T ) 
    ->setBody(
        CtrlStructMgr::factory(  'value', CtrlStructMgr::EQ, 1 )
            ->setBody( ' // this is if-body' )
            ->toArray(),
        CtrlStructMgr::factory(  'value', CtrlStructMgr::GT, 1 )
            ->setElseIfExprType()
            ->setBody( ' // this is elseIf-body' )
            ->toArray(),
        CtrlStructMgr::init()
            ->setElseExprType()
            ->setBody( ' // this is else-body' )
            ->toArray()
    )
    ->toString();
 Result :     public function someFunction( string $value )
    {
        if( $value == 1 ) {
             // this is if-body
        } // end if
        elseif( $value > 1 ) {
             // this is elseIf-body
        } // end elseif
        else {
             // this is else-body
        } // end else
    }
 switch Example$code = FcnFrameMgr::init()
    ->setName( 'someFunction' )
    ->addArgument( 'value', FcnFrameMgr::STRING_T )
    ->setBody(
        CtrlStructMgr::init()
            ->setSwitchExprType()
            ->setScalar(true )
            ->setBody(
                CtrlStructMgr::factory(
                    EntityMgr::factory( null, 'value' ),
                    CtrlStructMgr::EQ,
                    1
                )
                    ->setCaseExprType()
                    ->setBody( ' // this is case-body 1' )
                    ->toArray(),
                CtrlStructMgr::factory(
                    EntityMgr::factory( null, 'value' ),
                    CtrlStructMgr::GT,
                    1
                )
                    ->setCaseExprType()
                    ->setBody( ' // this is case-body 2' )
                    ->toArray(),
                CtrlStructMgr::init()
                    ->setDefaultExprType()
                    ->setBody( ' // this is default-body' )
                    ->toArray()
            ) // end setBody
        ->toArray()
    ) // end setBody
    ->toString();
 Result :     public function someFunction( string $value )
    {
        switch( true ) {
            case ( $value == 1 ) :
                     // this is case-body 1
                break;
            case ( $value > 1 ) :
                     // this is case-body 2
                break;
            default :
                     // this is default-body
                break;
        } // end switch
    }
 <small>Return to [README] - [Summary]</small> [Common methods]:CommonMethods.md
[EntityMgr]:EntityMgr.ms
[FcnInvokeMgr]:FcnInvokeMgr.md
[README]:../README.md
[Summary]:Summary.md |