International PHP Conference Munich 2025

Nitelikler

Sayılamalar, sınıflardaki gibi davranan niteliklerden yararlanabilir. Ancak, bir sayılama içinde kullanılan niteliklerin özelliklerinin olmamasına dikkat edilmelidir; sadece yöntemler ve statik yöntemler içerebilir. Özellikleri olan bir nitelik ölümcül hata ile sonuçlanır.

<?php

interface Renkli
{
public function
renk(): string;
}
trait
Dörtgen
{
public function
kesim(): string {
return
"Dörtgen";
}
}
enum
Deste implements Renkli
{
use
Dörtgen;
case
Kupalar;
case
Karolar;
case
Sinekler;
case
Maçalar;
public function
renk(): string
{
return match(
$this) {
Deste::Kupalar, Deste::Karolar => 'Kırmızı',
Deste::Sinekler, Deste::Maçalar => 'Siyah',
};
}
}
?>
add a note

User Contributed Notes 1 note

up
17
wervin at mail dot com
1 year ago
One good example of a trait, would be to give a lot of enums a method to retrieve their cases, values or both.

<?php
trait EnumToArray
{
public static function
names(): array
{
return
array_column(self::cases(), 'name');

}

public static function
values(): array
{
return
array_column(self::cases(), 'value');
}

public static function
asArray(): array
{
if (empty(
self::values())) {
return
self::names();
}

if (empty(
self::names())) {
return
self::values();
}

return
array_column(self::cases(), 'value', 'name');
}
}
?>

Some example outputs:

<?php
var_export
(IpVersion::names()); // ['Ipv4', 'IPv6']
var_export(IpVersion::values()); // []
var_export(IpVersion::asArray()); // ['IPv4', 'IPv6']

var_export(Language::names()); // ['en', 'es']
var_export(Language::values()); // ['English', 'Spanish']
var_export(Language::asArray()); // ['en' => 'English', 'es' => 'Spanish']
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