profileRyan KesPGP keyI build stuffEmailGithubTwitterLast.fmMastodonMatrix

New PHP8 Functions

In this post let's cover a few new interesting functions in PHP81

String functions


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


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


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);