Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

COOL - Razlika izmedju and, & i &&

[es] :: PHP :: COOL - Razlika izmedju and, & i &&

[ Pregleda: 3587 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kopca

Član broj: 14307
Poruke: 118
*.ftn.ns.ac.yu



Profil

icon COOL - Razlika izmedju and, & i &&16.10.2003. u 13:53 - pre 249 meseci
Pokusajte da testirate ovaj kod tako sto cete menjati |, ||, or u prvom "if-u" i
&, &&, and u drugom. Problem je sa striktnom i nestriktnom semantikom.
Striktno, marematicki "a and b" se izracunava tako sto se izracuna i a i b pa se vraca rezultat. Nestriktno, izracunamo a, pa ako je false, b i ne racunamo. Slicno i za or... Ako neko nije znao, sad zna. Pisite, zdravo zivo me interesuje kakva drugi imaju iskustva sa tim. 11 sati sam juce izgubio buljeci u jedan while koji mi nije radio zbog nestriktne semantike... Pozdrav.
<html>
<head>
<title> TEST </title>
<body>
<?php

function drugi() {
return "drugi <br>";
};
function b_test() {
return "uspeh";
};

$a = "";
$b = "";
if ( true || ($a .= drugi()) ) {
echo $a;
}
if ( false && ($b .= b_test()) ) {
}
echo $b;


?>
</body>
</html>
kopca
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: COOL - Razlika izmedju and, & i &&16.10.2003. u 14:46 - pre 249 meseci
Ja mislim da nema veze šta koristiš, & ili &&, jer kako sam negde pročitao, & proverava da li je i jedan i drugi iskaz tačan, a && proveri prvi pa ako nije tačan prekida, a ako jeste tačan proverava i drugi, treći itd.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.bankmeridian.com

Sajt: www.novikorisnik.net


+5 Profil

icon Re: COOL - Razlika izmedju and, & i &&16.10.2003. u 15:17 - pre 249 meseci
(false && error) == false
(false & error) == error
 
Odgovor na temu

CONFIQ
♫♪♥♪♫

Član broj: 4218
Poruke: 1994
*.inter.net.il

ICQ: 82327428


+10 Profil

icon Re: COOL - Razlika izmedju and, & i &&16.10.2003. u 19:46 - pre 249 meseci
Haam, kolko je meni poznato ne postoji samo jedan znak & da 'condision'. Postoji samo 2 && ili ||. && bi mogao da se zameni sa AND (uvek koristim AND) a || bi mogao da se zameni sa OR.

Ako bi imao nešto tipa:
if(TRUE & TRUE) trebalo bi da ti prijavi grešku.

~Say Samba
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.216.EUnet.yu



+1 Profil

icon Re: COOL - Razlika izmedju and, & i &&16.10.2003. u 23:08 - pre 249 meseci
&& i || su logički operatori, a & i | su operatori na bitovima, koristi se uglavnom za maskiranje bitova

na primer ako imas vrednost $a = 2 (binarno 0010), a $b = 3 (binarno 0011), $a & $b ce biti vece od 0 ako su u obe vrednosti bitovi na mestu 2 = 1, kao u ovom slucaju ovde. ako je $a =4 (0100) onda je $a & b = 0 zato sto na mestu 2 u broju 4 se nalazi 0.

kod bitova, gleda se sa desna na levo, pa kada kazem mesto 2 mislim 2 sa desne strane. mesto 1 je 2 na nulti, mesto 2 je 2 na prvi, mesto 3 je 2 na treci....
Goran Pilipović fka bluesman
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net



+3 Profil

icon Re: COOL - Razlika izmedju and, & i &&16.10.2003. u 23:12 - pre 249 meseci
http://www.php.net/manual/en/language.operators.bitwise.php
Procitajte i komentare.
Owl
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.216.EUnet.yu



+1 Profil

icon Re: COOL - Razlika izmedju and, & i &&16.10.2003. u 23:15 - pre 249 meseci
hajde da napisem nesto i o primeni toga. Recimo imas neku varijablu koja moye imate 4 vrednosti: crveno, plavo, belo, zeleno, ali moze imati i kombinaciju svih tih vrednosti (kao SET u sql)

defiises na primer ovako:
define ('PLAVO', 1);
define ('CRVENO', 2);
define ('ZELENO', 4);
define ('LJUBICASTO', 8);
define ('ZUTO', 16);

obrati paznju na brojeve, sve ide 2 na neki stepen (2 na 0 = 1, 2 na 1 = 2, 2 na 2 = 4, 2 na 3 = 8, 2 na 4 =16...)

i kada hoces da proveris koje vrednosti su ipisane u toj promenljivoje maskiras bitove

if ($var & PLAVO) echo "ima plave";
if ($var & CRVENO) echo "ima crvene";
if ($var & ZELENO) echo "ima zelene";
... itd.

a kada hoces da sacuvas vrednosti boja samo radis zbir
$nova_kombinacije = PLAVO + ZELENO
ovo ce dati rezultat 5 (1 +4), pa kada budes maskirao sa recimo ZUTO, dace 0 jer na mestu 2 na 4 nema 1, znaci nema zute...

Mozda je malo konfuzno, ali ovo se koristi kada moras da cuvas storage.
Goran Pilipović fka bluesman
 
Odgovor na temu

kopca

Član broj: 14307
Poruke: 118
*.ftn.ns.ac.yu



Profil

icon Re: COOL - Razlika izmedju and, & i &&18.10.2003. u 11:53 - pre 249 meseci
Hvala svima, mislim da pocinjem da kapiram. Samo, zbunila me (ne)striktna semantika koja postoji u, recimo, Moduli, pa sam se ja logicno nadovezao.
Znaci, verovatno je poenta da se upotrebljavaju boje umesto bitova, pa se pomocu
njih ispituje prisustvo ili odsustvo bita... Hvala bluesmanu na lepom objasnjenju. Samo, moze li neko ukratko nesto da ostavi o storage-ima? Pozdrav...
kopca
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.bankmeridian.com

Sajt: www.novikorisnik.net


+5 Profil

icon Re: COOL - Razlika izmedju and, & i &&18.10.2003. u 12:05 - pre 249 meseci
Citat:
... verovatno je poenta da se upotrebljavaju boje umesto bitova, pa se pomocu njih ispituje prisustvo ili odsustvo bita...
Sigurno, ako želimo da se i dalje zbunjujemo.

Vizualna percepcija kolorizovanih bit-pozicija versus crno-bela interpretacija binarnog sveta

Revolucionarno... Kao color TV
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.159.EUnet.yu



+1 Profil

icon Re: COOL - Razlika izmedju and, & i &&18.10.2003. u 22:59 - pre 249 meseci
Citat:
kopca:
Znaci, verovatno je poenta da se upotrebljavaju boje umesto bitova...


Toga sam se i plasio - ovo je nezeljeni efekat primera. :-))
Ovo je samo primer, ti mozes da koristis bilo sta. Recimo mozes da imas neko rentiranje sportske opreme, pa na primer koristis:

define ('uzeo_patike', 1);
define ('uzeo_sorc', 2);
define ('uzeo_reket', 4);

... da ne ponavljam ceo primer
pa testiras :

if ($var & 'uzeo_patike') echo "vracaj patike";
if ($var & 'uzeo_sorc') echo "sorc moras da operes posle upotrebe";
if ($var & 'uzeo_reket') echo "reket mozes i da kupis za ...";

Boje u mom primeru su posluzile samo kao primer.
Goran Pilipović fka bluesman
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.159.EUnet.yu



+1 Profil

icon Re: COOL - Razlika izmedju and, & i &&18.10.2003. u 23:03 - pre 249 meseci
Glavna "prednost" je sto umesto da koristis 10 varijabli (ili polja u bazi) kao uzeo_ovo, uzo_ono, uzeo_nesto_trece....
koristis samo jednu sta_je_uzeo i u njoj pise sve....

a i lakse je kasnije "dopuniti" spisak jer ako pocner da rentiras recimo i pertle, umesto da u tabelu dodajes novo polje 'uzeo_pertle' i prepravaljas kod, ti samo kreiras novu masku
define ('uzeo_pertle', 8);
i nastavljas sa maskiranjem...
Goran Pilipović fka bluesman
 
Odgovor na temu

kopca

Član broj: 14307
Poruke: 118
*.ftn.ns.ac.yu



Profil

icon Re: COOL - Razlika izmedju and, & i &&20.10.2003. u 08:42 - pre 249 meseci
Hvala, Gorane... Necu te vise zamarati, i ovo je taman dosta. Davno nisam video
lepsu foru za cuvanje prostora. Mislim, slicna stvar bi se mogla napraviti sa brojevima bilo koje brojevne osnove, samo nigde nemamo implementiran nacin za to
kao sto su ovi binarni operatori. Jedino nesto slicno sam video kod sintax-e VBScript-ove f-je MsgBox. Neki od parametara je i broj koji je zbir nekih opcija.
Verovatno to funkcionise na slican nacin. Ja sam pomocu ove fore smislio resenje jednog svog problema. Imam tabelu "Projekcija" za neki film i treba da pamtim koja su sedista slobodna (ima ih 25). 0 je slobodno, 1 nije. Svako mesto pamtim kao neki stepen 2-ke i samo sabiram i oduzimam u zavisnosti od toga da li je mesto zauzeto ili ne.
Pozdrav svima. Naravno i onima sto misle da su duhoviti kao Dejan, ali, sta da se
radi. Neko mora i to.
kopca
 
Odgovor na temu

stanoje
php+mysql coravljenje
Batajnica

Član broj: 602
Poruke: 56
*.korisnici.absolutok.com



Profil

icon Re: COOL - Razlika izmedju and, & i &&23.10.2003. u 12:53 - pre 249 meseci
te stvari vuku poreklo iz C-a, ako se dobro secam. Nikako nije u pitanju ista stvar, vecina C kompajlera bi trebala da ti da warning kad u if-u koristis jedan & ili |.
Naime ako kazes:

if(a & b) to je skracena varijanta if( (a&b)==true )
onda se izracunava vrednost a & b i to testira na tacnost

a ako kazes:

if(a && b)
onda se ispituje a, pa ako je tacno zatim i b pa se onda radi ono ispod.
ako je a netacno nema potrebe da se ispituje b, slicno je i kod ||.

if(a | b) -izracunava se, to je ustvari if((a|b)==true)
if(a || b) ispituje se b samo ako je a netacno jer bi tada b moglo da bude tacno.

zato i imas konstrukcije tipa
$db=mysql_connect($dbServer,$dbUser,$dbPass) or die("neuspesna konekcija")

a gde su ?: konstrukcije. Man, I love C.

evo ti jedne krace C varijante(obzirom da si VB-ovac)

if(($a=5) | ($b=6) | ($c=7))
{}
$a=(int)$a; $b=(int)$b; $c=(int)$c;
echo("<PRE>");print_r($a);print_r($b);print_r($c);echo("</PRE>");


if(($a==5) | ($b==6) | ($c==7))
{}
$a=(int)$a; $b=(int)$b; $c=(int)$c;
echo("<PRE>");print_r($a);print_r($b);print_r($c);echo("</PRE>");

To su ti nepatvorena C-ovska divljanja, jer su ljudi isli na to da stede prste
pa je potpuno ravnopravno
$i=$i+1
$i+=1
$i++



Uh, da nas vide ovi iz C foruma, sve bi nas proglasili idiotima sto uopste o ovom raspravljamo :). Te stvari oni dobijaju sa majchinim mlekom, ma kakvi cista genetika.

Naravoucenije:
Kad se covek sretne sa PHP-om vazi sledece:
"Ko je ucio C kajace se, ko nije ucio C kajace se"
Sima Kosmos iz dalekog svemira
 
Odgovor na temu

[es] :: PHP :: COOL - Razlika izmedju and, & i &&

[ Pregleda: 3587 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.