PHP pipe operators
Šis ieraksts ir tehnisks. Tas var būt par datoriem, programmēšanu, lodēšanu un tamlīdzīgām ne pārāk populārām lietām. Ja tevi šāds saturs neinteresē, droši vari to nelasīt.
Es vēl šo to iekš PHP šad un tad parakstu, bet tikai tāpēc, ka to labi zinu, protu un visādi citādi jūtos komfortabli. Ne tāpēc, ka man tas diktiņ patiktu. Vairāk atrodu sevi rakstam Go kodu. Kad ir laiks.
Ar nākamo (8.5) versiju būšot pipe operators. Kā ierasts — visos veikalos novembrī. Piemērs no šejienes.
// First-class callable syntax
$result = "hello world" |> strtoupper(...) |> trim(...);
// Works with any callable type
$data = getUsers()
|> fn($users) => array_filter($users, isAdmin(...)) // Function reference
|> array_values(...) // Built-in function
|> Processor::processUsers(...) // Static method
|> $processor->transform(...); // Instance method
// Clean placeholder syntax with partial function application
$result = $data |> str_replace(' ', '-', ?);
Kas bija jauns iepriekšējās versijās? Lietas, kuras tu noteikti nemaz vēl nelieto. Ja neskaita match
un varbūt tos pusenumus.
- 8.4 pagājušogad — property hooks, asimetriskā klašu atribūtu redzamība (rakstīšana privāta, lasīšana publiska),labāki stack treisi anonīmo funkciju gadījumā, HTML5 parseris (!!), dažādi nieki
- 8.3 aizpagājušogad — klašu konstantes var tikt tipizētas,
#[\Override]
atribūts, dažādi nieki - 8.2 pirms trim gadiem — read-only klases, DNF tipi (
(A&B)|null
), jauni tipinull
,false
untrue
, dinamiskie objektu atribūti tiek deprekeitoti, citi nieki - 8.1 pirms četriem gadiem — enumi, read-only atribūti, first-class Callable (
func(...)
), intersection types (Iterator&Countable
), jauns tipsnever
, oktālā notācija (0o16 === 14
), fibers «atbalsts», vēl nieki - 8.0 pirms pieciem gadiem — named arguments (
htmlspecialchars($string, double_encode: false)
), atribūti ([\#VemtGribās]
), vienkāršots veids kā konstruktoram inicializēt vērtības, union tipi (int|float
), match izteiksmes,?->
operators, daudz jaunu nieku;
Atgriežoties pie |>
. HN not impressed.
