Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z stałymi podczas sprawdzania czy posiada wartość..., problem dotyczy sprawdzania za pomocą empty()
ksenonlogin
post
Post #1





Grupa: Zarejestrowani
Postów: 123
Pomógł: 3
Dołączył: 29.10.2011

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


Witam

Mam nietypowy problem podczas sprawdzania wartości stałej (skrypt niżej) wyświetla błąd serwera. Pytanie, jak mam umieścić stałą by serwer nie wywalał mi błędów.
Dodatkowo chciałem wspomnieć iż w edytorze Aptana wskazuje mi błąd składni (czyli że jest zła składnia zapytania), dla zmiennej jest wszystko ok, ale zależy mi na zastosowaniu stałych.


  1. if(empty(DB_HOST)){
  2. echo '';
  3. }


Ten post edytował ksenonlogin 6.08.2012, 09:18:57
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




defined....

http://id2.php.net/manual/pl/function.defined.php


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
toffiak
post
Post #3





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

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


Jaki błędy są wyświetlane, jeśli jest to błąd że stała nie jest zdefiniowana to jest poprawny błąd.


--------------------
Go to the top of the page
+Quote Post
adbacz
post
Post #4





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

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


A możesz jeszcze raz zadać pytanie, bo tak je napisałeś, że nic kompletnie z niego nie rozumiem ;/
Go to the top of the page
+Quote Post
ksenonlogin
post
Post #5





Grupa: Zarejestrowani
Postów: 123
Pomógł: 3
Dołączył: 29.10.2011

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


Cytat(adbacz @ 6.08.2012, 10:13:25 ) *
A możesz jeszcze raz zadać pytanie, bo tak je napisałeś, że nic kompletnie z niego nie rozumiem ;/


Już poprawiłem zapytanie...

A dodatkowo stała jest zdefiniowana prawidłowo, ponieważ wyświetla zawartość przy drukowaniu.

Ten post edytował ksenonlogin 6.08.2012, 09:26:34
Go to the top of the page
+Quote Post
adbacz
post
Post #6





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

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


Jeśli stała nie jest zdefiniowana i będziesz próbował jej użyć to dostaniesz error, że nie ma takiej stałej i pokazana zostanie jej nazwa w błędzie. Tak na marginesie, jak sprawdzasz czy jest zdefiniowana?

  1. if(define('DB_HOST'))
  2. {
  3. echo 'Stała istnieje';
  4. }
Go to the top of the page
+Quote Post
ksenonlogin
post
Post #7





Grupa: Zarejestrowani
Postów: 123
Pomógł: 3
Dołączył: 29.10.2011

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


Nie chodzi o to czy jest zdefiniowana, bo wszystko działa (wszędzie używam stałej bez problemu), tylko nie mogę użyć stałej z empty() - tak jakby to było nie dozwolone, łączenie stałych z empty(), w dreamwer i aptana pokazuje mi że tak nie powinna wyglądać składnia, więc jak powinna, czy muszę ją jakoś umieścić, poprzedzić bym mógł sprawdzać czy stała ma jakąś wartość czy nie?
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przecież ci napisałem..... DEFINED
Podałem ci nawet linka do manuala. Tylko ta funkcja sprawdza, czy stała jest zdefiniowana czy nie...


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
irmidjusz
post
Post #9





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

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


Jemu nie chodzi o to, czy stała jest zdefiniowana czy nie jest, bo zawsze jest. On chce sprawdzić, czy wartość stałej jest empty tak, jak to sprawdza empty() na zmiennych.

empty() na stałych nie można użyć, ale możesz rzutować wartość stałej na boolean.

  1. if((bool) STALA){
  2. //nie jest empty
  3. }


Ten post edytował irmidjusz 6.08.2012, 11:20:09


--------------------
there is much to be learned
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




acha, sorki, nie doczytałem smile.gif


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ksenonlogin
post
Post #11





Grupa: Zarejestrowani
Postów: 123
Pomógł: 3
Dołączył: 29.10.2011

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


Zmienna ma wartość, a dlaczego nie istnieje?? mi nie chodzi o to czy została zdefiniowana tylko czy ma wartość czy nie?, a defined mówi że nie jest, ale przecież ma wartość

  1. DEFINE(A, BBB);
  2. echo A ;
  3.  
  4. if(define('A'))
  5. {
  6. echo 'Stała istnieje';
  7. }else{
  8. echo 'Stała nie istnieje';
  9. }
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie define.... a defined...... Dostałeś linka.

Poza tym
nie: DEFINE(A, BBB);
a:DEFINE('A', 'BBB');


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
redeemer
post
Post #13





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


DB_HOST jest stringiem. To nie da się bez rzutowania
  1. if (DB_HOST == '') { ... }
?

Ten post edytował redeemer 6.08.2012, 11:31:31


--------------------
Go to the top of the page
+Quote Post
ksenonlogin
post
Post #14





Grupa: Zarejestrowani
Postów: 123
Pomógł: 3
Dołączył: 29.10.2011

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


Cytat(nospor @ 6.08.2012, 12:30:07 ) *
nie define.... a defined...... Dostałeś linka.

Poza tym
nie: DEFINE(A, BBB);
a:DEFINE('A', 'BBB');



  1.  
  2. DEFINE('A', '');
  3. echo A ;
  4.  
  5. if(defined('A'))
  6. {
  7. echo 'Stała istnieje';
  8. }else{
  9. echo 'Stała nie istnieje';
  10. }
  11.  


Tak ale to i tak nic mi nie pomaga, bo teraz jest zdefiniowana, ale nie ma wartości - MI CHODZI O SPRAWDZENIE CZY JEST WARTOŚĆ CZY NIE.

Widzę że jedynie @redeemer mnie rozumie i jest to dobry pomysł który chciałem zastosować na początku, jednak jestem ciekawy dlaczego nie mogę tego sprawdzić przez empty()?

Ten post edytował ksenonlogin 6.08.2012, 12:34:18
Go to the top of the page
+Quote Post
nospor
post
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
- MI CHODZI O SPRAWDZENIE CZY JEST WARTOŚĆ CZY NIE.
Przecież dwa posty temu już przeprosiłem i napisałem, że nie doczytałem. A ty pomimo tego walnąłeś posta z DEFINE (złego posta) więc ci go poprawiłem.... Nie tylko jak tu nie potrafię doczytać tego i owego wink.gif

Cytat
, jednak jestem ciekawy dlaczego nie mogę tego sprawdzić przez empty()
Bo składnia dla empty wymaga podania zmiennych. Tyle w temacie smile.gif


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ksenonlogin
post
Post #16





Grupa: Zarejestrowani
Postów: 123
Pomógł: 3
Dołączył: 29.10.2011

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


I dokładnie o taką odpowiedź mi chodziło - po prostu nie wiedziałem że empty() wymaga tylko zmiennych, brak informacji w internecie...
Go to the top of the page
+Quote Post
nospor
post
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
po prostu nie wiedziałem że empty() wymaga tylko zmiennych, brak informacji w internecie...
A do manuala zaglądałeśquestionmark.gif

http://fr.php.net/manual/pl/function.empty.php
Zaraz na początku:
Cytat
empty — Determine whether a variable is empty


I dalej w komentarzach
Cytat
By definition empty( mixed* $var ) cannot accept all types. For example, define constants will cause error if you try to test them.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
irmidjusz
post
Post #18





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

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


ksenologin, przecież ja też Cię zrozumiałem smile.gif no wiesz co, czuję się dotknięty... wink.gif
tak samo sprawdzisz, czy stała zawiera coś, czy pusty link, rzutując ją na typ bool, dlatego Ci to napisałem.
  1. if((bool) DB_HOST){
  2. //tutaj DB_HOST ma wartość różną od ''
  3. } else {
  4. //a tutaj DB_HOST zawiera ''
  5. }


--------------------
there is much to be learned
Go to the top of the page
+Quote Post
redeemer
post
Post #19





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


@irmidjusz: Nie do końca. Jeżeli stała będzie zawierała "0" to rzutowanie zwróci false, a przecież pusta nie jest smile.gif


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #20





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No redeemer jak już tak się czepiasz to i twój kod
DB_HOST == ''
dla 0 da złą odpowiedź smile.gif


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 21.08.2025 - 11:34