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

Permalänk
Medlem

[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?

Visa signatur

Apple Mackbook Pro 15" Retina 2013

Permalänk
Medlem

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.

Permalänk
Medlem

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

Visa signatur

Apple Mackbook Pro 15" Retina 2013

Permalänk
Medlem
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!"

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Legendarisk

@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 { // ... }

Visa signatur

Abstractions all the way down.

Permalänk
Medlem
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

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Legendarisk
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

Visa signatur

Abstractions all the way down.