Skocz do zawartości

Programowanie obiektowe vs strukturalne.


Tomahawk

Rekomendowane odpowiedzi

konstruktor: sqlq=false;

function _sqlq_set($sql)
{
if ($sql != '')
 $this->sqlq = mysql_query($this->sqlq);

return $this->sqlq;
}

w każdej funkcji:
function num_rows($sql = '')
{
 if (!$this->_sqlq_set($sql))
  return false;

return mysql_num_rows($this->sqlq)
}

function rows($sql = '', $assoc = true)
{
 if (!$this->_sqlq_set($sql))
  return false;

...
$rows[] = mysql_fetch_array(...);
...
return $rows;
}

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 34
  • Dodano
  • Ostatniej odpowiedzi

Za pomocą zmiennej klasy $this uzyskujemy dostęp do właściwości[zmiennych] i metod[funkcji] zdefiniowanych w klasie lub odziedziczonych (nie będących zdeklarowanych jako private) w obrębie wszystkich metod klasy. Wiec jak w klasie będzie zdefiniowana właściwość np.: private $pole; możemy odwoływać się do niej w metodach klasy za pomocą $this. Bezpośrednio $pole nie zadziała ;) Przykładowo:

<?php
class Test
{
private $pole;

function __construct()
{
	$this->pole="Uzyskuje wartosc<br>";
}
public function NieNapisze()
{
	$lolakna="To napisze<br>";
	echo $pole; // Wartosc nieznana
	echo $lolakna; // Lokalna wartosc jest zainicjowana
}

public function Pisz()
{
	echo $this->pole;
}
}

$K = new Test();
$K->Pisz();
$K->NieNapisze();
/*
Uzyskuje wartosc
To napisze
*/
?>

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
  • 3 tygodnie później...
Za pomocą zmiennej klasy $this uzyskujemy dostęp do właściwości[zmiennych] i metod[funkcji] zdefiniowanych w klasie lub odziedziczonych (nie będących zdeklarowanych jako private) w obrębie wszystkich metod klasy. Wiec jak w klasie będzie zdefiniowana właściwość np.: private $pole; możemy odwoływać się do niej w metodach klasy za pomocą $this. Bezpośrednio $pole nie zadziała :) Przykładowo(...)

PAC! Nie właściwości klasy, a obiektu.

Z powodu nierozdzielenia tych pojęć powstał kolejny problem Tomahawka. Tworząc przypisanie:

$klasa=new jakas_klasa();

tworzysz instancję (mądre słowo) obiektu klasy jakas_klasa. Znaczy to, że za pomocą zmiennej $klasa możesz się odwoływać do metod i właściwości tego obiektu jak napisał Mion.

Klasa costam nie widzi zmiennej $klasa. Musisz pamiętać, że każdy obiekt (a zatem i klasa) to niezależna jednostka, która nie wie nic o innych obiektach. Musisz powiedzieć danemu obiektowi, że stworzyłeś inny obiekt, który ma być wykorzystany. To się nazywa przekazanie referencji obiektu (mądre stwierdzenie). Dzieje się to bardzo podobnie, jak przy przekazywaniu argumentów funkcji. Przykład (do poprzedniego kodu):

class jaka_klasa
{

function jakas_metoda()
{

}

}

$klasa=new jakas_klasa();

class costam
{
 function zrobcos($obiekt)
 {
$obiekt->jakas_metoda();
 }
}

Oficjalna strona serii Football Manager ( FM 2005, FM 2006 ) - CM Revolution

Forza MLKS Woźniki Śląskie!

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności