Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmienna w warunku
Forum PHP.pl > Forum > Przedszkole
nowy2700
  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... ?
motyl-pl
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
mortus
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.
nowy2700
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?
motyl-pl
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.
nowy2700
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
mortus
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
nowy2700
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
mortus
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
nowy2700
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.
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.