Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zmienna w warunku
nowy2700
post 7.03.2012, 14:04:33
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 7.03.2012

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


  1.  
  2. public function executeQuery( $queryStr ){
  3.  
  4. if ( !$result = $this->connections[$this->activeConnection]->query( $queryStr) ){
  5.  
  6. trigger_error('Error executing query: ' . $queryStr .' - '.$this->connections[$this->activeConnection]->error,E_USER_ERROR);
  7.  
  8. } else {
  9.  
  10. $this->last = $result;
  11.  
  12. }
  13.  
  14.  
  15. }
  16.  


Mam oto taki kod. Zaczynam naukę php więc proszę o w miarę proste tłumaczenie. Średnio na razie rozumiem "->" te znaczki ale to pomijam. Czy mógłby ktoś przetłumaczyć mi ten warunek w funkcji.

Nie bardzo rozumiem czym jest zmienna $result, skąd ona się bierze - czy zmienna tworzona jest w warunku? Jeśli warunek jest spełniony to zmienna ma jakąś wartość? bo w przypadku "else" widzę, że uzyskuje jakąś wartość...

Co oznacza "!$result" - nie jest tak, że... ?
Go to the top of the page
+Quote Post
motyl-pl
post 7.03.2012, 14:13:58
Post #2





Grupa: Zarejestrowani
Postów: 294
Pomógł: 31
Dołączył: 2.04.2010

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


Zacznij najpierw od programowania strukturalnego w PHPie potem bierz się za obiektowe.

  1. public function executeQuery( $queryStr ){
  2.  
  3. if ( !$result = $this->connections[$this->activeConnection]->query( $queryStr) ){ // Jeżeli nie jest nawiązane połąnie wyświetl błędy
  4.  
  5. trigger_error('Error executing query: ' . $queryStr .' - '.$this->connections[$this->activeConnection]->error,E_USER_ERROR); // Wyświetlanie błędu
  6.  
  7. } else { // W innym wypadku
  8.  
  9. $this->last = $result; // Wykonaj zapytanie
  10.  
  11. }
  12.  
  13.  
  14. }
  15.  
  16.  


!$result - zaprzecznie zmiennej

Ten post edytował motyl-pl 7.03.2012, 14:14:52


--------------------
Go to the top of the page
+Quote Post
mortus
post 7.03.2012, 14:14:44
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(nowy2700 @ 7.03.2012, 14:04:33 ) *
Średnio na razie rozumiem "->" te znaczki ale to pomijam.
Te znaczki to najważniejszy z operatorów programowania zorientowanego obiektowo i bez tego ani rusz.
! - operator negacji
$result to wynik tego: $this->connections[$this->activeConnection]->query( $queryStr)
a to: $this->connections[$this->activeConnection]->query( $queryStr) to nic innego jak wysłanie zapytania przez funkcję query przy wykorzystaniu aktywnego połaczenia zapisanego w tablicy połączeń klasy, którą operujemy i pobranie wyniku z bazy danych.

Zachęcam do zapoznania się z podstawami podstaw, które znaleźć można m. in. w manualu PHP.

@up: Panie motyl-pl bardzo ciekawa interpretacja warunku, jednak zdecydowanie błędna, podobnie jak i interpretacja reszty kodu. Pierwsze zdanie w zupełności by wystarczyło.

Ten post edytował mortus 7.03.2012, 14:16:23
Go to the top of the page
+Quote Post
nowy2700
post 7.03.2012, 14:17:11
Post #4





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 7.03.2012

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


Czym jest warunek to ja wiem... przez kilka lat i tez kilka lat temu pisalem w AS 1 i 2 i nie problem w tym czym jest if i else itp.

Nie rozumiem po prostu sensu tego warunku - co znaczy !$result = ... jesli nie jest tak ze result jest rowne prawej stronie to A a jesli jest to B ? a jakie wartosci przyjmuej zmienna $result i skąd ona się bierze bo nie widzę nigdzie żadnego przypisania wartości tej zmiennej.

Rozumiem ze wartosc zmiennej przypisywana jest w samym warunku?

Ten post edytował nowy2700 7.03.2012, 14:18:54
Go to the top of the page
+Quote Post
motyl-pl
post 7.03.2012, 14:17:54
Post #5





Grupa: Zarejestrowani
Postów: 294
Pomógł: 31
Dołączył: 2.04.2010

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


Dlaczego błędna ?
Nie wiem czym zajmuje się funkcja $this->connections[$this->activeConnection] lecz śmiem twierdzić że jest odpowiedzialna za połączenie z bazą a potem wykonanie zapytania.


--------------------
Go to the top of the page
+Quote Post
nowy2700
post 7.03.2012, 14:21:32
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 7.03.2012

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


Panie Mortus - dziękuje, o taką odpowiedź mi chodziło.


Ps. Tak jest to nawiązanie połączenia z bazą, przerabiam knigę php 5 social network i probuje na tej podstawie zalapac trochę jezyka bo niestety nie mam motywacji do nauki z typowego podręcznika gdzie celem jest stworzenie strony "hello this is my first site" smile.gif
Go to the top of the page
+Quote Post
mortus
post 7.03.2012, 14:28:16
Post #7





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(motyl-pl @ 7.03.2012, 14:17:54 ) *
Dlaczego błędna ?
Nie wiem czym zajmuje się funkcja $this->connections[$this->activeConnection] lecz śmiem twierdzić że jest odpowiedzialna za połączenie z bazą a potem wykonanie zapytania.

@motyl-pl: $this->conections to nie funkcja, tylko tablica, której nazwa wskazuje na to, że zawiera ona zbiór połączeń z bazą danych. Z kolei sposób jej użycia sugeruje, że połączenie już zostało nawiązane.

Zatem kolego nowy2700 radzę dokładniej czytać książkę, albo korzystać z lepszych translatorów smile.gif
Go to the top of the page
+Quote Post
nowy2700
post 7.03.2012, 14:40:21
Post #8





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 7.03.2012

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


Cytat(mortus @ 7.03.2012, 14:28:16 ) *
Zatem kolego nowy2700 radzę dokładniej czytać książkę, albo korzystać z lepszych translatorów smile.gif



Tutaj nie chodzi o głębsze czytanie. zrozumialbym warunek typu if ( $result != .... ) i nie wiedziałem czy jest to tożsame tylko inaczej napisane czy nie - a zmiennej $result nie widzialem nigdzie smile.gif
Go to the top of the page
+Quote Post
mortus
post 7.03.2012, 14:46:48
Post #9





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(nowy2700 @ 7.03.2012, 14:40:21 ) *
Tutaj nie chodzi o głębsze czytanie. zrozumialbym warunek typu if ( $result != .... ) i nie wiedziałem czy jest to tożsame tylko inaczej napisane czy nie - a zmiennej $result nie widzialem nigdzie smile.gif

Z tym czytaniem, to nie chodziło mi o przedstawiony problem i warunek, ale o stwierdzenie:
Cytat(nowy2700 @ 7.03.2012, 14:21:32 ) *
Ps. Tak jest to nawiązanie połączenia z bazą

które mija się z prawdą, co już wyżej opisałem.

Dobra kończmy ten offtop. smile.gif
Go to the top of the page
+Quote Post
nowy2700
post 7.03.2012, 14:59:48
Post #10





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 7.03.2012

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


Cytat(mortus @ 7.03.2012, 14:46:48 ) *
Z tym czytaniem, to nie chodziło mi o przedstawiony problem i warunek, ale o stwierdzenie:

które mija się z prawdą, co już wyżej opisałem.

Dobra kończmy ten offtop. smile.gif


No racja, polaczenie jest a my zapisujemy result of the query


W kazdym razie dzieki za szybka pomoc.
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 17.06.2025 - 20:12