A set PHP functions that SHOULD have been part of PHP's core libraries.
A set PHP functions that should have been part of PHP's core libraries.
Example
$found = str_contains($string, 'foo') && array_contains($array, ['all', 'of', 'these']);
// VS
$found = strpos($string, 'foo') !== false && count(array_intersect($array, ['all', 'of', 'these'])) === 3;
If you like these functions, you'll love the Improved PHP library. Go and check it out.
composer require jasny\php-functions
All functions are in the Jasny
namespace.
use function Jasny\str_contains; // Import functions
str_contains('moonrise', 'on');
Jasny\slug('Foo bár'); // or use directly
To import all the functions to the global namespace require 'global.php' anywhere in your application.
require_once 'vendor/jasny/php-functions/global.php';
Alternatively, add it to the autoload
section of composer.json
.
"autoload": {
"files": [
"vendor/jasny/php-functions/global.php"
]
}
boolean is_associative_array(mixed $var)
Check if variable is an associative array.
boolean is_numeric_array(mixed $var)
Check if variable is a numeric array.
boolean is_stringable(mixed $var)
Check if variable can be cast to a string. Returns true for all scalar values except booleans and objects that have a
__toString
method.
stdClass|mixed objectify(array|mixed $var)
Turn an associated array into a stdClass
object recursively.
array|mixed arrayify(stdClass|mixed $var)
Turn an stdClass
object into an associated array recursively.
string get_type_description(mixed $var)
Get the type of a variable in a descriptive way. E.g. "stream resource" and "DateTime object".
expect_type(mixed $var, string|string[] $type, string $throwable = null, string $message = null)
Validate that an argument has a specific type.
As type you can specify any internal type, including callable
and object
, a class name or a resource type (eg
stream resource
). Typed arrays are not supported.
By default a TypeError
(PHP 7) is thrown. You can specify a class name for any Throwable
class. For PHP 5 you must
specify the class name.
The message may contain a %s
, which is replaced by the type of $var
.
expect_type($input, ['array', 'stdClass']);
expect_type($output, ['array', 'stdClass'], 'UnexpectedValueException', "Output should be an array or stdClass object, got a %s");
array array_only(array $array, array $keys)
Return an array with only the specified keys.
array array_without(array $array, array $keys)
Return an array without the specified keys.
boolean array_contains_all(array $array, array $subset, boolean $strict = false)
Check if an array contains all values in a set.
This function works as expected with nested arrays or an array with objects.
boolean array_contains_all_assoc(array $array, array $subset, boolean $strict = false)
Check if an array contains all values in a set with index check.
This function works as expected with nested arrays or an array with objects.
boolean array_contains_any(array $array, array $subset, boolean $strict = false)
Check if an array contains any value in a set.
This function works as expected with nested arrays or an array with objects.
boolean array_contains_any_assoc(array $array, array $subset, boolean $strict = false)
Check if an array contains any value in a set with index check.
This function works as expected with nested arrays or an array with objects.
mixed array_find(array $array, callable $callback, int $flag = 0)
Find an element of an array using a callback function. Returns the value or FALSE if no element was found.
Flag determining what arguments are sent to callback:
ARRAY_FILTER_USE_KEY
- pass key as the only argument to callback instead of the valueARRAY_FILTER_USE_BOTH
- pass both value and key as arguments to callback instead of the value0
which will pass value as the only argument to callback instead.string|int|false array_find_key(array $array, callable $callback, int $flag = 0)
Find a key of an array using a callback function. Returns the key or FALSE if no element was found.
array function array_flatten(string $glue, array $array)
Flatten a nested associative array, concatenating the keys.
$values = array_flatten('.', [
'animal' => [
'mammel' => [
'ape',
'bear'
],
'reptile' => 'chameleon'
],
'colors' => [
'red' => 60,
'green' => 100,
'blue' => 0
]
]);
Will become
[
'animal.mammel' => [
'ape',
'bear'
],
'animal.reptile' => 'chameleon',
'colors.red' => 60,
'colors.green' => 100,
'colors.blue' => 0
]
string array_join_pretty(string $glue, string $and, array $array);
Join an array, using the 'and' parameter as glue the last two items.
echo "A task to " . array_join_pretty(", ", " and ", $chores) . " has been created.", PHP_EOL;
echo array_join_pretty(", ", " or ", $names) . " may pick up this task.", PHP_EOL;
boolean str_starts_with(string $string, $string $substr)
Check if a string starts with a substring.
boolean str_ends_with(string $string, string $substr)
Check if a string ends with a substring.
boolean str_contains(string $string, string $substr)
Check if a string contains a substring.
string str_before(string $string, string $substr)
Get a string before the first occurence of the substring. If the substring is not found, the whole string is returned.
string str_after(string $string, string $substr)
Get a string after the first occurence of the substring. If the substring is not found, an empty string is returned.
string str_remove_accents(string $string)
Replace characters with accents with normal characters.
string str_slug(string $string, string $glue = '-')
Generate a URL friendly slug from the given string.
string camelcase(string $string)
Turn a sentence, StudlyCase, snake_case or kabab-case into camelCase.
string studlycase(string $string, $ucfirst = true)
Turn a sentence, camelCase, snake_case or kabab-case into StudlyCase.
string snakecase(string $string)
Turn a sentence, StudlyCase, camelCase or kabab-case into snake_case.
string kababcase(string $string)
Turn a sentence, StudlyCase, camelCase or snake_case into kabab-case.
string uncase(string $string)
Turn StudlyCase, camelCase, snake_case or kabab-case into a sentence.
boolean ip_in_cidr(string $ip, string $cidr)
Check if an IP address is in a CIDR block.
Works with IPv4 and IPv6.
boolean ipv4_in_cidr(string $ip, string $cidr)
Check if an IPv4 address is in a CIDR block.
boolean ipv6_in_cidr(string $ip, string $cidr)
Check if an IPv6 address is in a CIDR block.
string inet_to_bits(string $inet)
Converts inet_pton output to string with bits.
boolean file_contains(string $filename, string $string)
Check if a string is present in the contents of a file.
This function is memory usage friendly by not loading the whole contents of the file at once.
boolean fnmatch_extended(string $pattern, string $path)
Match path against wildcard pattern. This is an extended version of fnmatch.
?
Matches a single character, except /
#
Matches any decimal characters (0-9)*
Matches any characters, except /
**
Matches any characters[abc]
Matches a
, b
or c
{ab,cd,ef}
Matches ab
, cd
or ef
mixed call_user_func_assoc(callable $callback, array $param_arr)
Call a callback with named parameters as associative array.
array object_get_properties(object $object, bool $dynamic = true)
Get the public properties of an object.
Unlike get_object_vars
, this method will return only public properties regardless of the scope.
The dynamic
flag controls if the output should be filtered, so only properties defined in the class are set.
array object_get_properties(object $object, array $data, bool $dynamic = true)
Set the public properties of an object.
The dynamic
flag controls if $data
should be filtered, so only properties defined in the class are set.