コード例 #1
0
ファイル: Variable.php プロジェクト: torchline/frest
 /**
  * @param int $variableType1
  * @param int $variableType2
  * @return int
  */
 public static function stricterVariableType($variableType1, $variableType2)
 {
     $isVar1Array = FALSE;
     $var1ElementVariableType = $variableType1;
     switch ($variableType1) {
         case Variable::ARRAY_BOOL:
         case Variable::ARRAY_INT:
         case Variable::ARRAY_FLOAT:
         case Variable::ARRAY_STRING:
             $isVar1Array = TRUE;
             $var1ElementVariableType = Variable::arrayElementVariableType($variableType1);
             break;
     }
     $isVar2Array = FALSE;
     $var2ElementVariableType = $variableType2;
     switch ($variableType2) {
         case Variable::ARRAY_BOOL:
         case Variable::ARRAY_INT:
         case Variable::ARRAY_FLOAT:
         case Variable::ARRAY_STRING:
             $isVar2Array = TRUE;
             $var2ElementVariableType = Variable::arrayElementVariableType($variableType2);
             break;
     }
     if ($isVar1Array == $isVar2Array) {
         return $variableType1 > $variableType2 ? $variableType2 : $variableType1;
     } else {
         if ($isVar1Array && !$isVar2Array) {
             $stricterElementType = Variable::stricterVariableType($var1ElementVariableType, $variableType2);
             return Variable::arrayVariableTypeFromElement($stricterElementType);
         } else {
             $stricterElementType = Variable::stricterVariableType($variableType1, $var2ElementVariableType);
             return Variable::arrayVariableTypeFromElement($stricterElementType);
         }
     }
 }