[PHP] Lägga till info om en funktion så att den syns när man skriver in den.

Trädvy Permalänk
Medlem
Plats
Vellinge
Registrerad
Nov 2002

[PHP] Lägga till info om en funktion så att den syns när man skriver in den.

Kunde inte komma på en bättre rubrik. Men jag är ute efter hur man lägger till information till en funktion som visar vilka parmaterar den tar emot och hur det ska vara formaterat.

Te.x. om jag skapar denna funktionen

function Test($country, $score){ echo $country . " scored " . $score . " points. Well done!"; }

Det jag vill nu är att när jag är jag längre ner i koden använder mig av funktionen genom att skriva in Test(); så vill jag få upp den där hjälprutan som blandannat finns i Dreamweaver som visar hur parametrarna $country och $score ska formateras.

Vill minnas att i något programmeringsspråk
skrev man något
@$county är vilket land funktionen ska använda sig av.
@$score är ett heltalsvärde som ska användas av funktionen

Får står ni hur jag menar?

Apple Mackbook Pro 15" Retina 2013

Trädvy Permalänk
Medlem
Plats
Västerås
Registrerad
Aug 2011

Om jag fattar vad du menar, så har väl det inte så mycket med språket att göra? Hänger väl mer på din IDE.

Burken:
CPU: i7 6700k | RAM: 16GB DDR4 | GPU: GTX 1070 Strix | Mobo: Asus B150 PRO GAMING | Lagring: 1TB 5400RPM, 1TB 7200RPM, 120GB SSD

Trädvy Permalänk
Medlem
Plats
Vellinge
Registrerad
Nov 2002

@Poptart: Jaså. Jag trodde det fanns något vedertaget sätt som var standard för ett programmeringsspråk.

Apple Mackbook Pro 15" Retina 2013

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007
Skrivet av Andi2k11:

Kunde inte komma på en bättre rubrik. Men jag är ute efter hur man lägger till information till en funktion som visar vilka parmaterar den tar emot och hur det ska vara formaterat.

Te.x. om jag skapar denna funktionen

function Test($country, $score){ echo $country . " scored " . $score . " points. Well done!"; }

Det jag vill nu är att när jag är jag längre ner i koden använder mig av funktionen genom att skriva in Test(); så vill jag få upp den där hjälprutan som blandannat finns i Dreamweaver som visar hur parametrarna $country och $score ska formateras.

Vill minnas att i något programmeringsspråk
skrev man något
@$county är vilket land funktionen ska använda sig av.
@$score är ett heltalsvärde som ska användas av funktionen

Får står ni hur jag menar?

https://www.phpdoc.org/docs/latest/references/phpdoc/basic-sy...

Sedan hänger det på ditt IDE att plocka upp kommentaren. Exempelvis IntelliJ kan göra detta.

PS: om du använder dubbelcitationstecken kan du lika gärna skriva "$country scored $score points. Well done!"

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Legendarisk
Hedersmedlem
Plats
::1
Registrerad
Dec 2002

@Andi2k11: Som @Poptart och @Teknocide redan har svarat så beror det på vad du använder för IDE och vad det har stöd för, men om du använder PHP 7.x (7.0 tillför typdeklarationer för primitiva typer och returnvärden, void och nullable return types kom i 7.1, vanliga klasser och interfaces kan hintas för parametrar sedan 5.x) så kan du förtydliga exemplet redan i signaturen och göra koden robustare på samma gång. Många funktioner bör gå att förstå helt utifrån sammanhang, namn, parametrar och deras typer, samt returtyp, om dessa är väl valda.

function Test( Country $country, // 5.0 int $score // 7.0 ) // : void // 7.1 { // ... }

Abstractions all the way down.

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007
Skrivet av Tunnelsork:

@Andi2k11: Som @Poptart och @Teknocide redan har svarat så beror det på vad du använder för IDE och vad det har stöd för, men om du använder PHP 7.x (void return type är 7.1) så kan du förtydliga exemplet redan i signaturen och göra koden robustare på samma gång. Många funktioner bör gå att förstå helt utifrån sammanhang, namn, parametrar och deras typer, samt returtyp, om dessa är väl valda.

function Test(Country $country, int $score) : void { // ... }

På tal om, se till att annotera argumentet med rätt typ, annars får man så här roliga fel..

function Test(integer $score) {} Test(1); > Fatal error: Uncaught TypeError: Argument 1 passed to Test() must be an instance of integer, integer given

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Legendarisk
Hedersmedlem
Plats
::1
Registrerad
Dec 2002
Skrivet av Teknocide:

På tal om, se till att annotera argumentet med rätt typ...

Meddelandena man får av att annotera primitiva typer på fel sätt är inte alltid lätta att tyda första gången. Här är en annan återkommande variant.

function foo() : boolean { return true; } function bar() : bool { return true; } foo(); // -> Fatal error: Uncaught TypeError: Return value of foo() must be an instance of boolean, boolean returned in ... bar(); // -> OK

Abstractions all the way down.