Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Co znaczy tutaj to 'int'?
sadistic_son
post 14.12.2022, 20:40:35
Post #1





Grupa: Zarejestrowani
Postów: 1 480
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Hej ludzie, co znaczy ': int' na koncu pierwszej linijki w ponizszym kodzie? Że funkcja ma zwrócić integer?

  1. public static function addition(int $number2, int $number3): int
  2. {
  3. return $number2 + $number3;
  4. }

Dzięki.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
gino
post 14.12.2022, 21:55:47
Post #2





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Tak, jeśli typ zwrócony będzie inny, to otrzymasz coś w tylu: Return value must be of type integer ...
Go to the top of the page
+Quote Post
sadistic_son
post 14.12.2022, 22:12:01
Post #3





Grupa: Zarejestrowani
Postów: 1 480
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Ok, dzięki. Ale to po co wtedy autor tego kodu jeszcze rzutuje typ int na $number1 i $number2? Przecież nie ma możliwości żeby wyszło coś innego niż int.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
gino
post 14.12.2022, 22:25:15
Post #4





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Teoretycznie masz racje, ale jak by ktoś na siłę chciał wrzucić np. float albo inny typ to możesz to sobie obsłużyć ładnie w exception. Ale już np. podczas dzielenia sprawa nie jest taka oczywista bo może zwrócić float.
Go to the top of the page
+Quote Post
vokiel
post 14.12.2022, 22:56:48
Post #5





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Cytat(sadistic_son @ 14.12.2022, 22:12:01 ) *
Ok, dzięki. Ale to po co wtedy autor tego kodu jeszcze rzutuje typ int na $number1 i $number2? Przecież nie ma możliwości żeby wyszło coś innego niż int.


W tym kodzie tak, ale generalnie wymuszenie typów wejściowych nie implikują typu wyściowego. Zawsze może w metodzie coś zmodyfikować typ zmiennych.

  1. public static function addition(int $number2, int $number3): int
  2. {
  3. $number2 = $this->countNumber($number2); // jeśli tutaj wróci float to wynik też będzie float
  4. return $number2 + $number3;
  5. }



--------------------
Go to the top of the page
+Quote Post
Salvation
post 15.12.2022, 00:08:04
Post #6





Grupa: Zarejestrowani
Postów: 343
Pomógł: 70
Dołączył: 15.07.2014

Ostrzeżenie: (0%)
-----


Cytat(sadistic_son @ 14.12.2022, 22:12:01 ) *
Ok, dzięki. Ale to po co wtedy autor tego kodu jeszcze rzutuje typ int na $number1 i $number2?

To nie jest rzutowanie, a określenie jakiego typu są zmienne wejściowe.
Cytat(sadistic_son @ 14.12.2022, 22:12:01 ) *
Przecież nie ma możliwości żeby wyszło coś innego niż int.

Bo to proste dodawanie, ale określenie zwracanego typu jest tak samo ważne jak typy wejściowe.

Problem z PHP jest taki, że nie jest językiem silno typowanym (co się jednak zmienia i kładzie się nacisk na typy jak widać) i sporo programistów jest już do tego przyzwyczajonych...
Spróbuj na chwilę przerzucić się na Jave czy C#, to zrozumiesz o co w tym biega, jeżeli nadal masz problem.
Go to the top of the page
+Quote Post
sadistic_son
post 15.12.2022, 09:31:55
Post #7





Grupa: Zarejestrowani
Postów: 1 480
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Rozumiem. Dzięki za odpowiedzi.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 09:29