note 129119 added to class.stringable
| From: | gcb at main dot php dot net | Date: | Sat, 23 Dec 2023 03:39:36 +0000 |
| Subject: | note 129119 added to class.stringable | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-221073@lists.php.net to get a copy of this message | ||
methods like
empty() will always return false for a stringable even if
__toString() returns an empty value. Those methods return false for objects, period.
<?php
class Uuid implements Stringable {
public function __toString(): string {
return "";
}
}
var_dump( empty(new Uuid('')) ); // false
var_dump( empty((string) new Uuid('')) ); // true
var_dump( empty(new class{}) ); // false
var_dump( empty((object)[]) ); // false
var_dump( empty([]) ); // true
?>
----
Server IP: 45.112.84.4
Probable Submitter: 45.91.157.134 (proxied: 177.50.225.251)
----
Manual Page -- https://php.net/manual/en/class.stringable.php
Edit -- https://main.php.net/note/edit/129119
Del: integrated -- https://main.php.net/note/delete/129119/integrated
Del: useless -- https://main.php.net/note/delete/129119/useless
Del: bad code -- https://main.php.net/note/delete/129119/bad+code
Del: spam -- https://main.php.net/note/delete/129119/spam
Del: non-english -- https://main.php.net/note/delete/129119/non-english
Del: in docs -- https://main.php.net/note/delete/129119/in+docs
Del: other reasons-- https://main.php.net/note/delete/129119
Reject -- https://main.php.net/note/reject/129119
Search -- https://main.php.net/manage/user-notes.php