Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenie warunkowe?
Forum PHP.pl > Forum > PHP
s_w_ir
Witam. Mam, znaczy miałem banalny problem ale holernie mnie frustrował(godzina siedzenia) tego pięknego wieczoru. a więc czy ktoś może mi powiedzieć dlaczegow takiej formie:[php:1:2736b4199b]<?php
if(!($ile_news==0 || $ile2==5))
?>[/php:1:2736b4199b]
wyrażenie działa poprawnie natomiast w:[php:1:2736b4199b]<?php
if($ile_news!=0 || $ile2!=5)
?>[/php:1:2736b4199b]
wogóle nie działa a oddzielnie:[php:1:2736b4199b]<?php
if($ile_news!=0)
if($ile2!=5)
?>[/php:1:2736b4199b]
znowu działa
Nie chodzi tu o brak zmiennych lub brak globali, ani innych prostych potyczek programistów:) Dlaczego?
spenalzo
Co to znaczy "nie działa" questionmark.gif

[php:1:1ebabd4c61]<?php
if($ile_news!=0 || $ile2!=5)
?>[/php:1:1ebabd4c61]

Nie podałeś dla jakich wartości więc:
a) dla $ile_news=3 i $ile2=7
pierwsze wyrażenie zwróci true, drugie true, wiec warunek jest spełniony

cool.gif $ile_news=0 i $ile2=4
pierwsze false, drugie true, warunek zwraca false

c) $ile_news=0 i $ile2=5
pierwsze false, drugie false, warunek zwraca false

Mam wątpliwości co do cool.gif - poprawcie mnie jeśli sie mylę.
FiDO
Cytat
[php:1:226ef565ab]<?php
if(!($ile_news==0 || $ile2==5))
?>[/php:1:226ef565ab]
wyrażenie działa poprawnie natomiast w:[php:1:226ef565ab]<?php
if($ile_news!=0 || $ile2!=5)
?>[/php:1:226ef565ab]

Rozumiem, ze w drugim przypadku chciales osiagnac taka sama wartosc logiczna co w piewszym?

Wiec klaniaja sie prawa de Morgana winksmiley.jpg
~(x || y) = ~x && ~y
adwol
A słyszałeś na logice matematycznej (za moich czasów to było w pierwszej klasie liceum, teraz jak są gimnazja to nie wiem kiedy tego uczą) o takim czymś jak prawa de Morgana?

Negacja alternatywy (spójnik ||) jest koniunkcją (spójnik &&) negacji. Czyli taki warunek:
[php:1:b2c99226e6]<?php
!($ile_news==0 || $ile2==5)
?>[/php:1:b2c99226e6]
jest równoważny takiemu:
[php:1:b2c99226e6]<?php
$ile_news!=0 && $ile2!=5
?>[/php:1:b2c99226e6]


Update: Fido, szybki jesteś winksmiley.jpg
s_w_ir
Co jak co ale w to:
Cytat
Wiec klaniaja sie prawa de Morgana winksmiley.jpg
~(x || y) = ~x && ~y
to uwierzyć nie moge. a co do wartości to
$ile2 może być empty albo 5
$ile_news=każda liczba.
Jakkolwiek dzięki
adwol
Cytat
Co jak co ale w to:
Cytat
Wiec klaniaja sie prawa de Morgana winksmiley.jpg
~(x || y) = ~x && ~y
to uwierzyć nie moge.

Przeprowadź sobie dowód. Sprawdź dla każdej z 4 kombinacji x y (true+true, true+false, false+true, false+false) lewą stronę równania i prawą i zobacz. Napewno się zgodzi. winksmiley.jpg
s_w_ir
Widze że moja logika szfankuje wieczorami(zresztą przez cały dzień) To dzięki!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.