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

Problem sa isset() funkcijom

[es] :: PHP :: PHP za početnike :: Problem sa isset() funkcijom

[ Pregleda: 2265 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MPesic
Beograd

Član broj: 164946
Poruke: 124
*.dynamic.isp.telekom.rs.



+25 Profil

icon Problem sa isset() funkcijom28.11.2011. u 03:08 - pre 151 meseci
Kako da zaobidjem emitovanje greske u ovom kodu:
Code:

<?php
$var = '';
    if (isset($var)) {
        $var = $_POST['ime'];
        echo $var;
    }
?>


A da to ne bude ovaj nacin:

Code:
<?php
    if (isset($_POST['ime'])) {
        $var = $_POST['ime'];
        echo $var;
    }
?>


Zar ne moze promenljiva da bude prazna u nekom trenutku a zatim da se proverava, i ako je prazna onda joj se dodeljuje vrednost?
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1571 Profil

icon Re: Problem sa isset() funkcijom28.11.2011. u 07:16 - pre 151 meseci
Pa nije ti problem stanje promenljive $var nego stanje $_POST['ime'] pa tp moraš i da proveravaš, baš kako si uradio u drugom primeru.

Primeti da isset() proverava da li je promenljiva definisana a ne da li je prazna.
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Problem sa isset() funkcijom28.11.2011. u 07:54 - pre 151 meseci
Kada se igraš sa isset funkcijom ili kada proveravaš da li je nešto uopšte setovano ili nije,
probaj 'vako..

Code (php):


if(isset($var)==false) {

      # do something..

     }

 


ili

Code (php):


if(isset($var)==true && isset($var)!='') {

      # do something ...

     }

 

about:networking
 
Odgovor na temu

MPesic
Beograd

Član broj: 164946
Poruke: 124
*.dynamic.isp.telekom.rs.



+25 Profil

icon Re: Problem sa isset() funkcijom28.11.2011. u 10:07 - pre 151 meseci
Citat:
Predrag Supurovic: Pa nije ti problem stanje promenljive $var nego stanje $_POST['ime'] pa tp moraš i da proveravaš, baš kako si uradio u drugom primeru.


A jel postoji neki drugaciji nacin da se ovo uradi, posto mi ovaj u drugom primeru ne deluje bas preterano lepo?
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Problem sa isset() funkcijom28.11.2011. u 10:47 - pre 151 meseci
@plus_minus
Bas je svejedno da li ce napisati kao sto je napisao ili kao sto si ti napisao u ta dva primera.
Ja licno uvek pisem kao sto on pise i nemam nikakvih problema. To su samo razliciti stilovi pisanja i ni jedan kod nije bolji od drugog (sem sto je ono !='' malo bezveze).

@MPesic

Pitanje bi ti bilo na mestu da si napisao 2 razlicita koda koji rade isti posao.
Pitas kako da napises prvi kod a da ne bude kao drugi a ti kodovi rade razlicit posao pa ne mogu da skontam poetnu pitanja.

Code (php):

<?php
$var = '';
    if (isset($var)) {
        $var = $_POST['ime'];
        echo $var;
    }
?>
 


Ti imas logicku rupu u kodu:
1. Setujes $var sa nista.
2. Proveravas da li je setovan var. Pa setovan je u predhodnom redu. Nema sta da proveravas. Ovo to je prva logicka rupa.
3. Ako je setovan $var (a uvek je setovan pa nema potrebe da se proverava) onda $var-u dodalis verdnost iz $_POST['ime]; Druga logicka rupa jer ne znas da li je setovan taj $_POST.

Drugi kod ti je logicki ispravan.

Mozda zelis ovako da napises kod:
Code (php):

$var = isset($_POST['ime']) ?  $_POST['ime'] : '';
echo $var;
 


[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Problem sa isset() funkcijom28.11.2011. u 10:55 - pre 151 meseci
Citat:
VladaSu:
...
...
sem sto je ono !='' malo bezveze.

...
...


Zašto? Ako misliš da je tu trebalo da stoji !== (not identical) umesto not equal...

ali, ne razumeš ili ne kontaš poentu njegovog pitanja inače.

Ako nije to..
Zašto bezveze? Ajd' pojasni. :)

U protivnom i meni je tvoj način pisanja - bzvz, jer nije kao moj način pisanja..
Jel' to u "pitanje"? :D
about:networking
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1571 Profil

icon Re: Problem sa isset() funkcijom28.11.2011. u 11:12 - pre 151 meseci
Ma ne, samo su tvoji predlozi nepotrebne komplikacije.
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Problem sa isset() funkcijom28.11.2011. u 12:24 - pre 151 meseci
Zato sto isset vraca bool.

Code (php):

if (isset($var)) { ...
//je isto sto i
if (true) { ...
//ili
if (false) { ...

//Da li je 0 ili 1

//onda

if (isset($var) == false) { ... // ili === ili != ili !==
//je isto sto i
if (false == false) { ...
//Kao sto vidis tu je cisto:
//Da li je 1==0 ili 0==0

//a tvoj primer
if (isset($var) != '') { ...
//je nekako slicno sa
if (isset($var) != (1-1)) { ..
//ili
if (isset($var) != (1-1+4-2-2)) { ..
 


Da li vidis nepotreban korak?
Ti poredis bool i string i pri tom se vrsi konverzija stringa u bool. Totalna bespotreba konverzija.
Sve je to (nazalost) ispravno.
Drugaciji nacin pisanja koda u smislu tvojih predloga ne resava problem niti poboljsava pisanje i preglednost koda.

U vecini jezika '' nije false vec je false false. Jednog dana i php ce tako raditi stvari.


I @MPesic ima recenicu "a da to ne bude ovaj nacin pisanja" sto znaci da mu odgovora taj nacin pisanja a tamo nema neke slicnosti sa tvojim odgovorom.

Meni su oba njegova primara po nacinu pisanja totalno ista samo sto prvi nije logicki ispravan.
Govori o ta dva koda kao da su ista samo razlicito napisana ali to su dva razlicita koda sa razlicitim funkcijama (slicnim).


A mozda je hteo ovo na osnovu ove recenice "Zar ne moze promenljiva da bude prazna u nekom trenutku a zatim da se proverava, i ako je prazna onda joj se dodeljuje vrednost?"
Sa isset se ne proverava da li je prazna promenljiva vec da li postoji.
Code (php):

$var = '';
if (empty($var) && isset($_POST['ime'])
{
    $var = $_POST['ime'];
}
echo $var;
 


[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Problem sa isset() funkcijom28.11.2011. u 12:54 - pre 151 meseci
To šta je on hteo, samo on zna, jer je u pitanju verovatno njegov primer problema (ne i sami problem i identičan kod), kako god, nagađam.

Ovo što si ispisao sada je daleko drugačije od bezveze, kada je već i (nažalost) ispravno i šljaka.






about:networking
 
Odgovor na temu

MPesic
Beograd

Član broj: 164946
Poruke: 124
*.dynamic.isp.telekom.rs.



+25 Profil

icon Re: Problem sa isset() funkcijom28.11.2011. u 19:35 - pre 151 meseci
Citat:
plus_minus: To šta je on hteo, samo on zna, jer je u pitanju verovatno njegov primer problema (ne i sami problem i identičan kod), kako god, nagađam.


Imam formular koji se nalazi na istoj stranici gde se nalazi i php kod. Zamislio sam tako da odmah na pocetku definisem promenljivu koja ce biti prazna i koja ce pokusati da uhvati sadrzaj input polja. Ukoliko promenljiva nije nista uhvatila onda ne raditi nista. Ukoliko je uhvatila onda emitovati sadrzaj te promenljive.

Ne znam koliko je vama sve ovo logicno. Inace zaboravite na prvi primer koji sam naveo, zeleo sam samo čitljivije napisati onaj drugi primer koji sam naveo:

Code (php):
<?php
    if (isset($_POST['ime'])) {
        $var = $_POST['ime'];
        echo $var;
    }
?>


Vlada Su je razumeo najbolje sta sam zeleo i to uradio uz pomoc ternarnog operatora:
Code (php):
$var = isset($_POST['ime']) ?  $_POST['ime'] : '';
echo $var;

 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Problem sa isset() funkcijom

[ Pregleda: 2265 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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