PHP 8.5.0 Alpha 4 available for testing

The Stringable interface

(PHP 8)

Introduction

The Stringable interface denotes a class as having a __toString() method. Unlike most interfaces, Stringable is implicitly present on any class that has the magic __toString() method defined, although it can and should be declared explicitly.

Its primary value is to allow functions to type check against the union type string|Stringable to accept either a string primitive or an object that can be cast to a string.

Interface synopsis

interface Stringable {
/* Methods */
public __toString(): string
}

Stringable Examples

Example #1 Basic Stringable Usage

<?php
class IPv4Address implements Stringable {
public function
__construct(
private
string $oct1,
private
string $oct2,
private
string $oct3,
private
string $oct4,
) {}

public function
__toString(): string {
return
"$this->oct1.$this->oct2.$this->oct3.$this->oct4";
}
}

function
showStuff(string|Stringable $value) {
// For a Stringable, this will implicitliy call __toString().
print $value;
}

$ip = new IPv4Address('123', '234', '42', '9');

showStuff($ip);
?>

The above example will output something similar to:

123.234.42.9

Table of Contents

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy