get_string_duck_types()

Since v1.5.0

Description

get_string_duck_types() returns a list of all possible PHP types for a given string. The list is ordered with the most specific match first.

use GanbaroDigital\MissingBits\TypeInspectors\GetStringDuckTypes;
public array get_string_duck_types(mixed $item);

Parameters

The input parameters are:

Return Value

get_string_duck_types() returns an array.

The resulting list is a complete list of string-related duck types for $item.

PHP does not automatically convert 'true' or 'false' into booleans.

That's why get_string_duck_types() doesn't add 'boolean' to the list of returned types if a string contains the text of a boolean value.

Example Return Values

Here's a list of examples of accepted input values:

var_dump(get_string_duck_types("true"));

// outputs
//
// array(1) {
//   ["string"]=>
//   string(6) "string"
// }
var_dump(get_string_duck_types("false"));

// outputs
//
// array(1) {
//   ["string"]=>
//   string(6) "string"
// }
var_dump(get_string_duck_types("0.0"));

// outputs
//
// array(3) {
//   ["double"]=>
//   string(6) "double"
//   ["numeric"]=>
//   string(7) "numeric"
//   ["string"]=>
//   string(6) "string"
// }
var_dump(get_string_duck_types("3.1415927"));

// outputs
//
// array(3) {
//   ["double"]=>
//   string(6) "double"
//   ["numeric"]=>
//   string(7) "numeric"
//   ["string"]=>
//   string(6) "string"
// }
var_dump(get_string_duck_types("0"));

// outputs
//
// array(3) {
//   ["integer"]=>
//   string(7) "integer"
//   ["numeric"]=>
//   string(7) "numeric"
//   ["string"]=>
//   string(6) "string"
// }
var_dump(get_string_duck_types("100"));

// outputs
//
// array(3) {
//   ["integer"]=>
//   string(7) "integer"
//   ["numeric"]=>
//   string(7) "numeric"
//   ["string"]=>
//   string(6) "string"
// }
var_dump(get_string_duck_types(new Exception(__FILE__)));

// outputs
//
// array(1) {
//   ["string"]=>
//   string(6) "string"
// }
var_dump(get_string_duck_types("hello, world!"));

// outputs
//
// array(1) {
//   ["string"]=>
//   string(6) "string"
// }
var_dump(get_string_duck_types(ArrayObject::class));

// outputs
//
// array(8) {
//   ["ArrayObject"]=>
//   string(11) "ArrayObject"
//   ["IteratorAggregate"]=>
//   string(17) "IteratorAggregate"
//   ["Traversable"]=>
//   string(11) "Traversable"
//   ["ArrayAccess"]=>
//   string(11) "ArrayAccess"
//   ["Serializable"]=>
//   string(12) "Serializable"
//   ["Countable"]=>
//   string(9) "Countable"
//   ["class"]=>
//   string(5) "class"
//   ["string"]=>
//   string(6) "string"
// }
var_dump(get_string_duck_types(Traversable::class));

// outputs
//
// array(3) {
//   ["Traversable"]=>
//   string(11) "Traversable"
//   ["interface"]=>
//   string(9) "interface"
//   ["string"]=>
//   string(6) "string"
// }

Here's a list of examples of ingored input values:

var_dump(get_string_duck_types(null));

// outputs
//
// array(0) {
// }
var_dump(get_string_duck_types([1,2,3]));

// outputs
//
// array(0) {
// }
use GanbaroDigital\MissingBits\TypeInspectors\GetStrictTypes;

var_dump(get_string_duck_types([GetStrictTypes::class, "from"]));

// outputs
//
// array(0) {
// }
var_dump(get_string_duck_types(function(){}));

// outputs
//
// array(0) {
// }
var_dump(get_string_duck_types(true));

// outputs
//
// array(0) {
// }
var_dump(get_string_duck_types(false));

// outputs
//
// array(0) {
// }
var_dump(get_string_duck_types(0.0));

// outputs
//
// array(0) {
// }
var_dump(get_string_duck_types(3.1415927));

// outputs
//
// array(0) {
// }
var_dump(get_string_duck_types(0));

// outputs
//
// array(0) {
// }
var_dump(get_string_duck_types(100));

// outputs
//
// array(0) {
// }
var_dump(get_string_duck_types(-100));

// outputs
//
// array(0) {
// }
var_dump(get_string_duck_types(new ArrayObject));

// outputs
//
// array(0) {
// }
use GanbaroDigital\MissingBits\TypeInspectors\GetStrictTypes;

var_dump(get_string_duck_types(new GetStrictTypes));

// outputs
//
// array(0) {
// }
var_dump(get_string_duck_types((object)[]));

// outputs
//
// array(0) {
// }
var_dump(get_string_duck_types(STDIN));

// outputs
//
// array(0) {
// }

Throws

get_string_duck_types() does not throw any exceptions.

Works With

get_string_duck_types() is supported on these versions of PHP:

PHP Version Works?
5.5 Yes
5.6 Yes
7.0 Yes
HHVM Yes