Skocz do zawartości

Problem z wyswietlaniem wyniku działania pętli for


skorpionek

Rekomendowane odpowiedzi

Witam.

Jestem początkujący w php i mam problem, który pewnie wyda Wam się śmieszny ale nigdzie nie mogę znaleźć odpowiedzi.

<?php
for ($i=0; $i<16; $i++)
{
if ($i==10)
{
$j='a';
};

if ($i=11)
{
$j='b';
};

if ($i=12)
{
$j='c';
};

if ($i=13)
{
$j='d';
};

if ($i=14)
{
$j='e';
};

if ($i=15)
{
$j='f';
};

if ($i<10)
{
$j=$i;
};

echo ('#'.$j.'00000'.'<br />');
};
?>

Wyświetla mi się jedynie ostatni wynik zamiast wszystkich 16. A może macie jakiś pomysł jak to łatwiej rozwiązać bez 7 instrukcji warunkowych?

Pozdrawiam i z góry dziękuję za odpowiedzi.

Odnośnik do komentarza
Udostępnij na innych stronach

Ale o co właściwie chodzi ? Jeśli porównujesz to nie tak

if ($i=12)

ale

tak: if ($i==12)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Tak w ogóle to:

if ($i==10)

{

$j='a';

};

else if ($i=11)

{

$j='b';

};

Warto dodać else przed kolejnymi if-ami bo zaoszczędzi to troszkę pracy procesorowi albo skorzystać z instrukcji switch/case: https://php.net/manual/en/control-structures.switch.php

Odnośnik do komentarza
Udostępnij na innych stronach

A jeszcze lepiej to po prostu:

<?php
$str = '0123456789abcdef';
for ($i=0; $i<16; $i++) echo ('#'.$str[$i].'00000'.'<br />');
?>

Czy jeszcze krócej:

<?php
for ($i=0; $i<16; $i++) echo ('#'.dechex($i).'00000'.'<br />');
?>

Bez instrukcji warunkowych :)

Albo można jeszcze bez pętli for:

<?php
while(@$i<16) print('#'.dechex($i++).'00000'.'<br />');
?>

EDIT:

INOMan - jeśli już z warunkowymi to lepiej "elseif" pisane łącznie a nie "else if" ze spacją. I semantycznie i syntaktycznie to jednak coś nieco innego. I z pewnymi różnicami i ciekawostkami się to w php wiąże.

No i w takim przypadku to bez średników po nawiasie klamrowym, bo to nie zadziała.

---> OmniADD <---

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności