original_string: public static function input(
          string $name, 
          string $type = "text", 
          string $value = null, 
          array $attributes = []
      ) : string 
      {
          $preAttributesInput = [
              "name" => $name,
              "type" => $type,
          ];
          if (!is_null($value)) {
              $preAttributesInput["value"] = $value;
          }
          $attributesInput = array_merge($preAttributesInput, $attributes);
          return self::tag("input", "", $attributesInput);
      }
code: public static function input(
          string $name, 
          string $type = "text", 
          string $value = null, 
          array $attributes = []
      ) : string 
      {
          $preAttributesInput = [
              "name" => $name,
              "type" => $type,
          ];
          if (!is_null($value)) {
              $preAttributesInput["value"] = $value;
          }
          $attributesInput = array_merge($preAttributesInput, $attributes);
          return self::tag("input", "", $attributesInput);
      }
code_tokens: public static function input ( string $ name , string $ type = "text" , string $ value = null , array $ attributes = [ ] ) : string { $ preAttributesInput = [ "name" => $ name , "type" => $ type , ] ; if ( ! is_null ( $ value ) ) { $ preAttributesInput [ "value" ] = $ value ; } $ attributesInput = array_merge ( $ preAttributesInput , $ attributes ) ; return self :: tag ( "input" , "" , $ attributesInput ) ; }
docstring: Create an input tag
  
  @param string $name name attribute (always needed)
  @param string $type type attribute (always needed)
  @param string $value pre set value
  @param array $attributes further attributes
  @return string HTML Code
docstring_tokens: Create an input tag