Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] if w if jak zrobić
nowy100
post 15.06.2014, 02:28:43
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.05.2014

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


Nie potrafię sam znaleźć rozwiązania jak poprawnie powinienem zrobić "if" w "if" czyli po spełnieniue pierwszego waruknu sprawdza kolejny w nim i wtedy działa - przykład poniżej:


założenie działania:
1 - sprawdza $ilosc_pol pobrana z formularza i jeśli jest tyle ile podano w formuarzu to wtedy sprawdza czy $a !== $b i jeśli nie jest rowna to wyswietla monit a jak są równe to nic nie robi.


<?php

$ilosc_pol = 10;

$a = 3;
$b = 4;
$c = 4;
$d = 4;
$e = 4;


if ($ilosc_pol == 8)
{
if ($a !== $b)
{
echo 'rower';
};
};


if ($ilosc_pol == 10)
{
if ($a !== $b)
{
echo 'rower';
};
};



wiem, że jest to niepoprawne ale nie wiem jak zrobić aby w jednym if zrobić kolejny - jakiego innego rozwiązania powinienem użyć tutaj - o czym powinienem poczytać?

dziękuję za podpowiedź.

Go to the top of the page
+Quote Post
ZaXaZ
post 15.06.2014, 07:47:37
Post #2





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


za } skasuj sredniki..

poza tym da się twój kod skrócić:

  1. if ($ilosc_pol == 8) if ($a !== $b) echo 'rower';
  2. if ($ilosc_pol == 10) if ($a !== $b) echo 'rower';


lub jeszcze bardziej, bo robisz ten sam wynik i drugi if...

  1. if ($ilosc_pol == 8 || $ilosc_pol == 10) if ($a !== $b) echo 'rower';



--------------------
Go to the top of the page
+Quote Post
kpt_lucek
post 15.06.2014, 11:38:06
Post #3





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

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


  1. echo (($ilosc_pol == 8 || $ilosc_pol == 10) && ($a !== $b))?'rower':'';


smile.gif


--------------------


Cytat
There is a Bundle for that
Lukas Kahwe Smith - October 31th, 2014
Go to the top of the page
+Quote Post
thek
post 15.06.2014, 23:20:01
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Albo jeszcze krócej. Zamiast wydzielać kolejne opcje w "lub", złącz je jako warianty w tablicy:
  1. if( in_array($ilosc_pol, array(8, 10)) && $a !== $b) { /* tu rób co chcesz */ }



--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
nowy100
post 16.06.2014, 00:45:02
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.05.2014

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


smile.gif wow, sporo tych opcji i póki co raczej tajemnicze - dzięki za wszystkie odpowiedzi, poczytam o tym i popróbuję z przykładami.

edit.

popatrzyłem i chyba nie do końca się da to aż tak skrócić bo nie opisałem dokładnie - jednak teraz widzę już tego możliwości i co robiłem źle - irytujące jest na początku nauki, że człowiek błądzi w tak prostych sprawach ...

nie da się tego aż tak skrócić jak piszecie ponieważ po pierwszym if kolejny if zawsze będzie też inny (ale zasadę zrozumiałem) tzn. będzie mniej więcej tak:



if ($ilosc_pol == 2) if ($a !== $b) echo 'rower';
if ($ilosc_pol == 3) if ($a !== $c) echo 'rower';
if ($ilosc_pol == 4) if ($a !== $d) echo 'rower';
if ($ilosc_pol == 5) if ($a !== $e) echo 'rower';



tego z tablicą jeszcze nie rozumiem ale popróbuję dla poznania.
dzięki smile.gif

Ten post edytował nowy100 16.06.2014, 00:51:33
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 08:37