Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pytanie o zmienne
Forum PHP.pl > Forum > Przedszkole
artgrus
Witam.

Nie pisać mi w stylu "masz buga na google" bo szukałem a nie znalazłem tego co potrzebuje.

Dzisiaj mam dziwne aczkolwiek ciekawe choć nieco mogące niepokoić pytanie.
Nie wiem czy można stosować (czy tak można pisać) i czy stosuje się, dlatego potrzebuje rad poprawnych / rad wogóle co sądzicie i czy jest ok w pisaniu tak.

Jeżeli chcemy sprawdzić czy zmienna istnieje, pisze się coś takiego
  1. if ($zmienna) { echo 'zmienna istnieje'; } else { echo 'niema zmiennej'; }


albo czy przesłaliśmy zmienną:
  1. if ($_GET['zmienna'] == 'ok') { echo 'przeslano zmienna '.$_GET['zmienna']; } else { echo 'nie przeslano zmiennej'; }


lub inny sposób
  1. if ($zmienna == 'ok') { echo 'przeslano zmienna '.$zmienna; } else { echo 'nie przeslano zmiennej'; }



To wiemy..



Ale czy stosuje się taki zapis, żeby przed zmienną wstawić symbol [at] @ questionmark.gif

Czyli takie coś:


  1. if (@$zmienna) { echo 'zmienna istnieje'; } else { echo 'niema zmiennej'; }


albo czy przesłaliśmy zmienną:
  1. if (@$_GET['zmienna'] == 'ok') { echo 'przeslano zmienna '.$_GET['zmienna']; } else { echo 'nie przeslano zmiennej'; }


lub inny sposób
  1. if (@$zmienna == 'ok') { echo 'przeslano zmienna '.$zmienna; } else { echo 'nie przeslano zmiennej'; }


albo:
  1. echo @$_COOKIE['zmienna'];




Bo piszę pod php5 i niekiedy mi pokaże się bład taki:
  1. [b]Notice:[/b] Undefined variable: login in [b]ścieżka[/b] on line [b[numer linii[/b]


W php4 nie miałem takiego problemu bo żaden błąd jak powyżej - nie pojawił się.


Pokaże się nawet jeśli zmienna jest zadeklarowana, ale nie przesłana.
A jak użyję znaku @ to mi błąd nie pojawi się - a nawet przesłana jest instrukcja w IFie

Proszę o odpowiedź.
nospor
Cytat
masz buga na google
bana...

Do sprawdzenia czy zmienna istnieje uzywa się isset() a nie zadnego porownania, ktore wlasnie generuje blad gdy ona nie istnieje.

@ nienalezy uzywac, no chyba ze jestes doswiadczonym programistą i wiesz dlaczego jej uzywasz - ale to tez tylko w wyjątkowych sytuacjach.

A w php4 ci sie bledy nie wyswietlaly bo miales akurat taką domyslna konfiguracje, by nie pokazywala wszystkich bledow


przenosze na przedszkole
artgrus
Aha. Czyli jak napiszę:

  1. <?php
  2. if (isset($_POST['login'])) {
  3. $login = htmlspecialchars($_POST['login']);
  4. } else {
  5. $login = false;
  6. }
  7. ?>


to będzie dobrze??

Proszę sprawdzić dla formalności.

Proszę o odpowiedź.
phpion
@up:
Tak.
nospor
Wszystko zalezy od konktekstu.
Ogolnie ten kod co podales jest ok, ale ciort wie w jakim konktekscie go umiesciles winksmiley.jpg
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.