Odpověď na názor

Odpovídáte na názor k článku PHP 8.5 zavádí dlouho očekávaný operátor pipe a nové nástroje pro URI. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • 21. 11. 2025 10:18

    tomas82

    Protože není žádný důvod, aby existovaly primitivní datové typy. Když se podívám na ten nový zápis:

    $title = ' PHP 8.5 Released ';
    
    $slug = $title
        |> trim(...)
        |> (fn($str) => str_replace(' ', '-', $str))
        |> (fn($str) => str_replace('.', '', $str))
        |> strtolower(...);
    
    var_dump($slug);


    a srovnám to se zápisem:

    $title = ' PHP 8.5 Released ';
    
    $slug = $title
        -> trim()
        -> replace(' ', '-')
        -> replace('.', '')
        -> tolower();
    
    var_dump($slug);
    Mám z toho pocit, že řetězec jako objekt má určité výhody:
    • nepotřebuju zavádět novou syntaxi
    • ušetřím tři funkce v globálním jmenném prostoru
    • nemusím psát prefix funkce "str_", protože je zbytečný
    • obešel jsem se bez anonymních funkcí
    • obešel jsem se bez syntaxe s třemi tečkami
    Jistě lze namítat, že tu novou syntaxi lze použít na jakékoliv funkce a uvedené výhody se projeví jen u řetězců... dovedete si představit tu krásu, kdyby php udělalo třídy i z polí? A kdyby dokázalo rozlišit seznamy a mapy? (Tady asi php křivdím, protože mám pocit, že na to má minimálně interfacy a možná i třídy už připravené... jen se nikde v mém okolí nepoužívají :-(.)