- Notifications
You must be signed in to change notification settings - Fork 72
Open
Description
- get - simple
public string $email { get => 'mailto:' . $this->email; }
- get - block
get { 'mailto:' . $this->email; }
- set - full block form
set ($value) { $this->[propertyName = $value }
- block form with implicit $value
set { $this->[propertyName = $value }
- expression form with explicit $value
set ($value) => {expression}
- expression form with implicit $value
set => {expression}// expression form with implicit $value
- get by reference
&get => { }
- default value
public string $role = 'anonymous' { set { Roles::from($value); $this->role = $value; } }
- final on hooks
class StandardUser { public string $email { final set { if (! filter_var($value, FILTER_VALIDATE_EMAIL, FILTER_FLAG_EMAIL_UNICODE)) { throw new InvalidArgumentException('Invalid email'); } $this->email = $value; } } }
- final on property
class User { // Child classes may not add hooks of any kind to this property. public final string $name; // Child classes may not add any hooks or override set, // but this set will still apply. public final string $username { set => [strtolower](http://www.php.net/strtolower)($value); } }
- abstract
abstract class StandardUser { abstract public string $email { get; } }
- interface - get
interface I { // An implementing class MUST have a publicly-readable property, // but whether or not it's publicly settable is unrestricted. public string $readable { get; } }
- interface - set
interface I { // An implementing class MUST have a publicly-writeable property, // but whether or not it's publicly readable is unrestricted. public string $writeable { set; } }
- interface - get + set
interface I { // An implementing class MUST have a property that is both publicly // readable and publicly writeable. public string $both { get; set; } }
Metadata
Metadata
Assignees
Labels
No labels