2010-11-14 4 views
-1

Salut, J'apprends le PHP, et je ne peux pas me concentrer sur les classes/objets PHP. Je comprends les objets JavaScript/classes, mais je ne peux pas sembler saisir PHP. Ce que je veux principalement c'est que je puisse faire ce genre de chose. (Note cela pourrait traverser JS et PHP)Objets PHP/classes

$SQL = $db->query("SELECT * 
        FROM table 
        WHERE 1 = "); 

$table_assoc = $db->assoc_array($SQL); 
$table_array = $db->num_array($SQL); 

Ive vu ce genre de chose fait dans les cadres de PHP, mais comment ça fonctionne? Merci d'avance!

+1

Je suis désolé, mais la dernière phrase semble que vous devriez relire cette partie du manuel PHP premier http://php.net/manual/en/language.oop5 .php, puis revenez avec des malheurs concrets de mise en œuvre. – mario

Répondre

3

Si vous voulez concevoir une classe pour l'accès à la base de données, je vous suggère de ne pas le faire. Il y a déjà beaucoup de classes qui font cela. Il y a une extension PHP appelée PDO qui peut vous aider à faire le type de chose ci-dessus et elle est déjà bien testée. Voici un lien vers un bon tutoriel à ce sujet: http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html

OOP en PHP est très similaire à OOP dans d'autres langages tels que C++, C# (similaires pas les mêmes, les concepts de base sont très transférables. liens postés ci-dessus pour comprendre cela en détail).

Modifier

Voyons comment cela va :). Voici les bases.

Un class est un type de quelque chose. Vous pouvez avoir une classe de classe Person, Car etc.

Un object est un instance du class. C'est une chose de ce type. Dans un contexte PHP, voici à quoi cela ressemblera:

class Person // Class 
{ 
    public $name; // Property 

    public function setName($n) // Method 
    { 
     $this->name = $n; 
    } 
} 

J'ai créé une classe appelée Person.

$p = new Person(); // An instance of Person class 

J'ai créé une instance de la classe. est un objet de type Person.

L'intérieur $name est un member variable(/attribute). Pensez-y que c'est l'une des propriétés qui définit un Person. La classe Person est un conteneur pour un ensemble de données qui définit un Person; name est l'une de ces données.

Une classe peut avoir methods. Pensez à ces façons d'interagir avec la classe. Vous pouvez appeler une méthode pour que la classe fasse quelque chose. Dans l'exemple ci-dessus, la méthode setName peut être appelée avec 1 argument. Cet argument est défini comme la valeur de la variable membre name. Le $this doit être utilisé pour faire référence aux variables membres (le $n n'est pas une variable membre, c'est-à-dire que ce n'est pas une propriété de la classe)

Ceci devrait vous donner les bases pour commencer. Tout le reste s'appuie sur cela.

+0

ahh, je l'obtiens maintenant, maintenant je vois comment c'est différent des variables, ainsi si j'avais $ p = new Person(); et $ x = nouvelle personne(); je pourrais avoir 2 de la même classe? avec des propriétés différentes pour chacun? – Diesal11

+0

@ Diesal11: Oui, c'est vrai. – Aishwar

2

Il ya quelques excellent documentation sur ce sujet - je suggère de jeter un oeil à elle.

+0

ive essayé de le lire comme 5 fois, c'est vraiment déroutant. – Diesal11

+1

Avez-vous des questions spécifiques? "Expliquer les cours PHP à moi" est une question très vague que personne ici n'est vraiment intéressé à répondre. "J'ai du mal à comprendre les méthodes getter et setter" ou quelque chose comme ça serait beaucoup plus facile à répondre. – cdhowie

+0

J'ai du mal à comprendre tout cela. ive jamais vraiment appris les noms à tout, mais je le sais dans ma tête comme "cette chose" et "cette autre chose" si la documentation me confond juste:/ – Diesal11

1

Hope this peut expliquer

$db = new db; 
$SQL = $db->query("SELECT * FROM table WHERE 1 = "); 


// The translate will be like this 
// content of db class 
class db { 
    function query($query) { 
     $return = mysql_query($query); 
     return $return; 
    } 
} 



// or without OOP it will be like this 
function query($query) { 
    $return = mysql_query($query); 
    return $return; 
} 
// and we call it like this 
$SQL = query("SELECT * FROM table WHERE 1 = ");