Avatar billede bvirk Guru
13. september 2022 - 10:17 Der er 2 kommentarer og
1 løsning

Forståelse af return function

Har netop installeret frameworket Symfony vha composer - bare for at forstå.

Index.php er hvad man kan  kalder 'main script' - altså det som kalder alt andet.

Sådan ser index.php ud:

---------
<?php

use App\Kernel;

require_once dirname(__DIR__).'/vendor/autoload_runtime.php';

return function (array $context) {
    return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
};
--------

Jeg forstår ikke.

1. Hvilken rolle spiller at returnere fra 'main script' - Hvad returneres til?
2. Hvordan skal 'return function' forståes når function er skrevet som definitionen af en funktion og med afsluttende semicolon - er det som en anonymous i javascript - har aldrig set det før.
Avatar billede arne_v Ekspert
13. september 2022 - 15:21 #1
re 2)

Det er en funktion returnerer en anonym funktion.

Simpel demo:

<?php
function fgen() {
    return function($a,$b) { return $a + $b; };
}

$f = fgen();
echo $f(123, 456);
?>
Avatar billede arne_v Ekspert
13. september 2022 - 15:28 #2
re 1)

Undrer også mig.

Og jeg synes heller ikke at det ligner Symfony dokumentationen.

https://symfony.com/doc/current/introduction/http_fundamentals.html#requests-and-responses-in-symfony

https://symfony.com/doc/current/page_creation.html

På den anden side kender jeg praktisk talt ingenting til Symfony, så at jeg ikke ved det skal man ikke ligge så meget i.
Avatar billede bvirk Guru
14. september 2022 - 10:38 #3
Tak for understøtning af min formodning, Arne - det er ligesom i javascript hvor man kan returne end funktion. 💯 mange muligheder i PHP

'Den return' giver mening hvis index.php, betinget genindlæses fordi noget autoload giver op - med andre ord - det er ikke en return til mod_php eller andet runtime - formentlig sker der intet ved at afslutte med return over 'øverste stacktrace'.

Behjælpsomme folk har kommenteret her
https://stackoverflow.com/questions/73706747/return-value-from-index-php/73709903#73709903

Her er også kommentarer der indikere at der er sket ændring i index.php med symfony 5 og 6
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester