Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pierwsza moja klasa..czy to tak?
Forum PHP.pl > Forum > PHP
quetra
Hmmm no dobra - to moja pierwsza klasa. Pytam sie czy tak to sie wlasnie robi, na przykladzie klasy ktora obsluguje baze danych. Sam skrypt dziala bez problemu, ale moze sa jakies bardziej funkcjonalne rozwiazania na napisanie go.

[php:1:f01808fa7f]<?
class Db {
var $DBHost,$DBUser,$DBPass,$DBN,$Query;
function DBConnect() {
$connect=mysql_connect($this->DBHost,$this->DBUser,$this->DBPass)or die('Connection Error: '.mysql_error());
$baza=mysql_select_db($this->DBName)or die('DataBase Error: '.mysql_error());
return $connect;
}
function DBNumRows() {
$zap=mysql_query($this->Query,$this->DBConnect())or die('Query Error: '.mysql_error());
return mysql_num_rows($zap);
}
}

$Enew= new Db;
$Enew->DBHost='localhost';
$Enew->DBUser='root';
$Enew->DBpass='';
$Enew->DBName='mysql';
$Enew->Query='SELECT * FROM Db';
// i jako przykladowe wywolanie wyniku
echo "Ilosc wierszy: ".$Enew->DBNumRows();
?>
[/php:1:f01808fa7f]

Czy sa jakies inne sposoby deklarowania zmiennych dla danej kopii obiektu, czy zawsze trzeba z tymi $Enew->DBHost='costam';
i tak dalej....

Pozdrawiam mastahów biggrin.gif
jaco
Cytat
Czy sa jakies inne sposoby deklarowania zmiennych dla danej kopii obiektu, czy zawsze trzeba z tymi $Enew->DBHost='costam';
i tak dalej....


Zasada chyba jedna a sposobow miliony - mozesz np. przekazac tablice w taki sposob:

$Enew->set_conf(array $x);

Ta metoda mozne np. zadeklarowac wlasciwosci o nazwie index i podanej wartosci...
quetra
Nno ulepszylem moje pierwsze cudo o cos takiego biggrin.gif czekam na oceny typu: tak wlasnie tak to sie robi lub a po co? nie mozna prosciej? biggrin.gif

W kazdym razie spodobaly mi sie klasy. Ciezko sie projektuje ( jak na poczatku), ale potem super wygoda w pisaniu kodu.



[php:1:f0ec3dce0c]<?php

$dane=array('DBHost'=>'localhost','DBUser'=>'root','DBPass'=>'','DBName'=>'mysql','Query'=>'SELECT * FROM Db');

class Db {
var $DBHost,$DBUser,$DBPass,$DBN,$Query,$Data;

function DbCreator() {
foreach ($this->Data as $key=>$val) {
$this->$key=$val;
}
}
function DBConnect() {
$connect=mysql_connect($this->DBHost,$this->DBUser,$this->DBPass)or die('Connection Error: '.mysql_error());
$baza=mysql_select_db($this->DBName)or die('DataBase Error: '.mysql_error());
return $connect;
}
function DBNumRows() {
$zap=mysql_query($this->Query,$this->DBConnect())or die('Query Error: '.mysql_error());
return mysql_num_rows($zap);
}
}

$Enew=new Db;
$Enew->Data=$enew;
$Enew->DbCreator();
echo $Enew->DBNumRows();

?>[/php:1:f0ec3dce0c]

Nie sprawdzalem tego, ale teraz moge sopbie dopisac do tej klasy inne dowolne funkcje i potem je sobie wywoluje odwolujac sie do tego obiektu albo gdzie inndziej odwolujac sie do innego stworzonego obiektu i sie nie popieprzy tak?

Poczatki sa truuuudne biggrin.gif

Pozdrawiam wszystkich pomocnych biggrin.gif
jaco
A po co dwa razy zapisywac te same dane? Odrazu je wpisz do wlasciwosci:

$obiekt->metoda_z_foreach($dane);
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.