• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przykład funkcji w PHP - czy jest konieczny warunek if?

+1 głos
71 wizyt
pytanie zadane 7 września 2020 w PHP przez vingilot85 Obywatel (1,150 p.)

Mam takie zadanie:

<?php
function calcStatsYears ($start, $end, $print=true)
{
    $days=($end-$start)*365;// koniec MINUS start * 365
    $hours=$days*24;
    $mins=$hours*60;
    $secs=$mins*60;
    
    if($print==true)
    {
        print "Od początku roku $start do końca roku $end jest:\n";//tu jest print, dzieki czemu później zmienne $sec1 i $sec2 drukują wyniki
        print "$days dni, $hours godzin, $mins minut i $secs sekund!\n";
    }
    return $secs;
}

$sec1=calcStatsYears(1901, 2000);//XX wiek
echo PHP_EOL;
$sec2=calcStatsYears(2001, 2020);//XXI wiek
echo PHP_EOL;

print "Razem sekund: ".($sec1+$sec2);
?>

Czy może wyjaśnić mi, po co autor ćwiczenia wstawił warunek if($print==true) ?
Sprawdzałem, i bangla i bez niego.

Z góry dziękuję za wyjaśnienie

3 odpowiedzi

+1 głos
odpowiedź 7 września 2020 przez Stami Gaduła (3,780 p.)
Jezeli do funkcji nie podasz wartości $print przyjmie ona domyślnie true, jeżeli byś podał ten argument możesz zastosować false - wtedy if się nie wykona.
komentarz 7 września 2020 przez vingilot85 Obywatel (1,150 p.)
Ok, dzięki. Dałem if==0 i zrozumiałem
+1 głos
odpowiedź 7 września 2020 przez Ehlert Ekspert (205,530 p.)

Będzie działać, bo masz domyślną wartość argumentu $print ustawioną na true, dlatego warunek będzie się wykonywać.

Warto tutaj zaznaczyć że kod który wkleiłeś to antywzorzec. Tego typu parametrów sterujących nie powinno się używać. Wyświetlanie dobrze oddelegować do innej funkcji.

autor ćwiczenia

Polecam zmienić źródła wiedzy wink

komentarz 7 września 2020 przez vingilot85 Obywatel (1,150 p.)
Rozumiem, dzięki!

Akurat to ćwiczenie ma własnie za zadanie naukę, aby funkcja coś zwróciła.
Korzystanie ze zmiennych oraz ustalanie co mają obliczyć, było już wcześniej;)

O ile dobrze zrozumiałem sugestię
0 głosów
odpowiedź 8 września 2020 przez VBService VIP (136,750 p.)

Zobaczysz różnicę jak wywołasz funkcję: wink

$sec1=calcStatsYears(1901, 2000);
$sec1=calcStatsYears(1901, 2000, false);

tego if-a można zapisać tak w php-ie:

if($print)
{
    ...
}
  

 

Podobne pytania

0 głosów
1 odpowiedź 239 wizyt
0 głosów
1 odpowiedź 268 wizyt
pytanie zadane 30 listopada 2017 w PHP przez Adam Ostrogórski Obywatel (1,070 p.)
0 głosów
1 odpowiedź 61 wizyt
pytanie zadane 20 maja 2020 w PHP przez spicedagger Użytkownik (530 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

85,728 zapytań

134,512 odpowiedzi

298,568 komentarzy

56,635 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...