New PHP8 Functions
In this post let's cover a few new interesting functions in PHP81
String functions
str_contains()2
This one has been a long time coming. Instead of
if (strpos('Lululu I've got some apples, 'apples') !== false) { /* … */ }
the following will suffice
if (str_contains('Lululu I've got some apples, 'apples')) { /* … */ }
str_starts_with() & str_ends_with()3
Two other functions that should have been added a long time ago:
str_starts_with('haystack', 'hay') // true
str_ends_with('haystack', 'stack') // true
Types & resources
get_debug_type()4
This returns the type of a variable. Difference with gettype()
is that get_debug_type()
is more specific:
namespace Foo;
class Bar
{
}
$bar = new Bar();
echo gettype($bar)."\n"; // Object
echo get_debug_type($bar); // Foo\Bar
get_resource_id()5
Before php8 we had to cast resources to int
to get the id:
$resourceId = (int) $resource;
Now the good PHP people have given us a function:
$resourceId = get_resource_id($resource);