new \GraphQL\Type\Definition\ObjectType([ 'name' => 'Query', 'fields' => [ 'testBoolean' => [ 'type' => \GraphQL\Type\Definition\Type::boolean(), 'args' => [ 'boolInput' => [ 'type' => \GraphQL\Type\Definition\Type::boolean() ] ], 'resolve' => function ($value, $args, $context, $info) { echo $args['boolInput'] ? 'true' : 'false'; return $args['boolInput']; } ] ] ]) ]); $query = ' query($boolQueryVariable: Boolean) { testBoolean(boolInput: $boolQueryVariable) } '; $testQueryVariableValues = [true, false, 1, 0, 0.0, 'true', 'false', '1', '0', '0.0']; $outputQueryVariableValues = ['true', 'false', '1', '0', '0.0', '"true"', '"false"', '"1"', '"0"', '"0.0"']; $queryVariables = array_map(null, $testQueryVariableValues, $outputQueryVariableValues); foreach ($queryVariables as $queryVariable) { echo $queryVariable[1] . ' was coerced to '; $queryResult = \GraphQL\GraphQL::executeQuery($schema, $query, null, null, ['boolQueryVariable' => $queryVariable[0]])->toArray(); echo PHP_EOL . PHP_EOL; }