Comprendre les classes

  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Juillet 15th, 2009, 12:14 pm

Présentation des classes

Introduction


Ceci est un tutoriel d'introduction aux classes et POO (Programmation Orientée Objet) en PHP, pour ceux qui connaissent les bases du langage PHP.

Les classes sont vraiment extraordinaires et vous permettra de code des programmes puissants si vous les utiliser correctement. Ce forum est généralement basée sur les classes et un groupe de fonctions

Squelette d'une classe


Les classes sont vraiment facile à utiliser effectivement et rien à craindre. J'avais l'habitude de reculer devant eux avant de commencer à les utiliser, mais quand j'ai commencé à apprendre les classes, j'ai été surpris et j'ai compris que je surestimé.

Vous pouvez nommer une classe avec tout ce que vous voulez. Les noms de classes pourraient être faites avec des lettres, des nombres, et qui souligne "_". Rappelez-vous que si vous utiliser des chiffres dans le nom de classe, il ne peuvent pas être le premier caractère, vous avez besoin d'avoir une lettre soit le premier caractère. Vous dites à l'analyseur PHP qui est une classe en mettant le mot classe en face du nom de classe.

Ci-dessous un exemple d'une petite classe simple:
PHP Code: [ Select ]
<?php
class abc123_class {
    var $var = false;
   
    function func_test()
    {
        // Function test
    }
}
?>
  1. <?php
  2. class abc123_class {
  3.     var $var = false;
  4.    
  5.     function func_test()
  6.     {
  7.         // Function test
  8.     }
  9. }
  10. ?>

Ne pas s'inquiéter si vous ne comprenez pas tout cela en ce moment, je lui expliquerais tout ça plus tard dans ce tutoriel.

Ce qui est si bien dans une classe, c'est que vous pouvez passer des variables entre fonctions sans avoir à les faire passer mondiale ou la variable dans l'argument de la fonction. Il est également possible de partager des variables et des fonctions entre les classes, et je voudrais en parler plus tard que son assez grand pour un autre ensemble de ce tutoriel gif "alt =":)" title =" Smile ">

Les variables au sein de la classe qui peut être transmis entre la fonction de fonction qui sont à l'intérieur d'une classe sont accessibles avec le $ this mot-clé. Il est recommandé de vous pré-définir les avant de les utiliser pour éviter les erreurs commence à ressembler à «tel et telle variable non définie», et de créer seulement des valeurs par défaut pour ces variables.

Voici un exemple de classe en utilisant la chose variable.

PHP Code: [ Select ]
<?php
class example {
    var $name = false;
    var $last = false;
   
    function name($first, $last)
    {
        $this->name = $first;
        $this->last = $last;
    }
   
    function show()
    {
        echo $this->name . ' ' . $this->last;
    }
}
?>
  1. <?php
  2. class example {
  3.     var $name = false;
  4.     var $last = false;
  5.    
  6.     function name($first, $last)
  7.     {
  8.         $this->name = $first;
  9.         $this->last = $last;
  10.     }
  11.    
  12.     function show()
  13.     {
  14.         echo $this->name . ' ' . $this->last;
  15.     }
  16. }
  17. ?>

J'ai utilisé la concaténation de chaîne là pour montrer que vous pouviez faire cela avec les variables de classe à l'échelle comme vous le feriez avec des classes normales. Fondamentalement, ils sont normal variables et pourraient être utilisées en tant que telle...comme un tableau, booléen, intager, float, etc, etc, ils ont simplement un clas-champ large et sont accessibles par le mot clé $ this . Dont get qui confondait gif "alt =":)" title =" Smile ">

Le mot-clé $ this ne pouvaient être utilisées dans une méthode qui est à l'intérieur d'un objet...Dans ce cas, à l'intérieur d'une fonction qui est à l'intérieur d'une classe. Vous ne pouvez pas avoir le mot-clé à l'extérieur d'une fonction et à l'intérieur d'une classe qui vous donne une erreur.

Vous pouvez avoir autant de variables, comme de nombreuses fonctions à l'intérieur d'une classe comme vous voulez / avez besoin pour votre système ou de script, il n'y a pas de limite.

Utilisation de classes


Pour utiliser un objet / classe, vous devez créer une nouvelle instance de l'objet et lui affecter une variable nommée comme bon vous semble. Les classes doivent être définies avant qu'elles ne peuvent être initiés. Ci-dessous un exemple d'ouverture d'une classe:
PHP Code: [ Select ]
<?php
$object_res = new example();
?>
  1. <?php
  2. $object_res = new example();
  3. ?>

En utilisant les fonctions et les variables à l'intérieur de cette classe / objet, n'est pas difficile, vous utilisez la flèche (->) comme vous le faites pour accéder à la classe des variables de large avec le mot-clé $ this . Voici un exemple:
PHP Code: [ Select ]
<?php
$object_res = new example();
 
$object_res->name = 'Mark';
$object_res->last = 'Jones';
 
$object_res->show();
?>
  1. <?php
  2. $object_res = new example();
  3.  
  4. $object_res->name = 'Mark';
  5. $object_res->last = 'Jones';
  6.  
  7. $object_res->show();
  8. ?>

L'exemple de code ci-dessus print "Mark Jones" parce que la fonction show () on entend l'écho du prénom et le nom de famille.

Il existe plusieurs types de variables officiellement connue sous le nom de types de données et celui-ci est «l'objet». Vous pouvez en savoir plus sur les types de données ici pour comprendre davantage sur quelques-uns d'entre eux et pour obtenir une liste de tous les types de données.

Quelques mises en garde


Si vous allez utiliser des classes d'après ce tutoriel, vous ne savez pas d'abou plus les cours, je wouldnt proposons de nommer une fonction identique à votre nom de classe. Il est possible, et dans la plupart des cas, une bonne idée de faire cela, mais je n'ai pas parlé et que dans ce tutoriel et sera plus tard dans un tutoriel.

Quel est son bien est appelée une méthode magique et est équivalent à __construct , Mais là encore, je voudrais parler de tout cela à un tutorial plus tard, si nu avec moi ici gif "alt =": D "title =" très heureux ">

Qu'est-ce que vous pouvez faire


Ce que vous pouvez faire pour renforcer votre expérience d'apprentissage est la pratique les cours d'écriture avec des variables de parler entre les fonctions dans une classe. La première chose que je fait dans une classe est un wrapper accès à la base...J'ai eu une fonction pour se connecter à la base de données, et une fonction de sélectionner et de ce truc...En ce moment, la classe terminée pourrait être trouvé sur PHP Classes référentiel.

Conclusion


Espérons que vous avez appris les rudiments de classes et prêt à aller aux choses les plus avancés, une fois le tutoriel vient ici.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Juillet 15th, 2009, 12:14 pm

  • Rabid Dog
  • Web Master
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Mai 21, 2004
  • Messages: 3229
  • Loc: South Africa
  • Status: Offline

Message Août 7th, 2009, 8:54 am

Même si je suis d'accord en partie avec ce que vous avez dit, je voudrais ajouter quelques petites choses ici.

Vous n'avez pas utilisé tous les niveaux d'accès (public / privé, etc). Cela forme Kinda les bases pour les classes, la capacité à envelopper et à exposer est seulement au besoin. Je pense que la connaissance des classes est effectivement la dernière chose que vous devez savoir en termes de programmation orientée objet, pourquoi ne pas faire un tutoriel sur la POO puis porter dans les classes gif "alt =":)" title =" Smile "> (Juste une suggestion, ne pas être arrogant)

Une dernière chose. Votre tutoriel sur les types sur l'autre site vous sont posées sur le $ i + + et + + i. $ Cela n'a rien à voir avec la vitesse. Le + + $ i sera incrémenté avant le contexte de la fonction / opération est terminée et le $ i + + ne incrément i après l'opération est terminée.

Essayez-les
Code: [ Select ]
$j = 0;
$k = 0;
for($i = 0; $i < 10; $i++){
echo "Line post:" . $j++ . "<br />";
echo "Line pre:" . ++$k . "<br />";
}
  1. $j = 0;
  2. $k = 0;
  3. for($i = 0; $i < 10; $i++){
  4. echo "Line post:" . $j++ . "<br />";
  5. echo "Line pre:" . ++$k . "<br />";
  6. }


Vous remarquerez que k $ obtient à 10, où que j $ reçoit uniquement à 9 :)
Watch me grow
  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Août 7th, 2009, 11:35 pm

Ouais...Je sais que cela n'a rien à voir avec la vitesse...On m'a dit que il est plus rapide en C / C + + (mais je ne sais pas ces langues, donc je ne peux pas confirmer).

Je ne crois pas que pour que cet exemple, mais il est bon que vous avez mis en place il. Je pense qu'il vaut mieux, quand deux personnes d'écrire un tutoriel plutôt que d'une personne à écrire un tutoriel...fait le tutoriel que beaucoup mieux :D

Merci pour les conseils de l'ordre tutorial...ne pense pas que sur une. Certainement un mauvais début OOP tutorial et la classe des niveaux d'accès (privé, public...)

Merci pour les commentaires...me permet d'améliorer mes connaissances et de didacticiels ainsi (Comme je écrire des tutoriels :thumbsup: )
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Rabid Dog
  • Web Master
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Mai 21, 2004
  • Messages: 3229
  • Loc: South Africa
  • Status: Offline

Message Août 8th, 2009, 4:46 am

Seul un plaisir, je l'admire le temps vous avez mis dans tous les tutoriels :)
Watch me grow
  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Août 8th, 2009, 11:39 am

Merci :) Heureux de savoir Im pas perdre mon temps :lol:
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • spork
  • Brewmaster
  • Silver Member
  • Avatar de l’utilisateur
  • Inscription: Sep 22, 2003
  • Messages: 6128
  • Loc: Seattle, WA
  • Status: Offline

Message Août 8th, 2009, 5:19 pm

La raison i + + est "plus rapide" que i + + dans des langues non managés tels que C + + est que i + + nécessite une étape supplémentaire.

Vu le code:

Code: [ Select ]
int i = 5;
int val = ++i;
  1. int i = 5;
  2. int val = ++i;


Le programme doit effectuer les étapes suivantes:

1. Incrémenter la valeur de i
2. Définissez la valeur de val à celle de i

Mais dans le code suivant:

Code: [ Select ]
int i = 5;
int val = i++;
  1. int i = 5;
  2. int val = i++;


Le programme doit effectuer une étape supplémentaire:

1. Copiez la valeur de i dans un emplacement temporaire
2. Incrémenter la valeur de i
3. Définissez la valeur de val à la valeur temporaire
The Beer Monocle. Classy.
  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Août 8th, 2009, 5:23 pm

C'est logique...Merci de signaler que, sur :)
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Nightslyr
  • Proficient
  • Proficient
  • No Avatar
  • Inscription: Sep 21, 2005
  • Messages: 274
  • Status: Offline

Message Novembre 18th, 2009, 2:03 pm

Pourquoi n'êtes-vous pas en utilisant la syntaxe PHP 5s supérieure et des capacités? PHP 4 n'est même pas soutenu par Zend plus longtemps, et PHP 5 a été autour depuis, quoi, 5 ou 6 ans déjà?
  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Novembre 18th, 2009, 7:23 pm

Qu'est-ce que tu racontes?
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Nightslyr
  • Proficient
  • Proficient
  • No Avatar
  • Inscription: Sep 21, 2005
  • Messages: 274
  • Status: Offline

Message Novembre 19th, 2009, 5:54 am

Bogey a écrit:
Qu'est-ce que tu racontes?


Ceci:

PHP Code: [ Select ]
class example
{
   var $name;
   var $last;
}
  1. class example
  2. {
  3.    var $name;
  4.    var $last;
  5. }


PHP 4 est la syntaxe. Le mot-clé "var" n'existe que pour maintenir une compatibilité ascendante avec les applications existantes, et ne devrait vraiment pas être utilisé dans les applications modernes comme le même que déclarer un membre de données publique, qui est une mauvaise chose à faire dans la plupart des cas. Donc, comme je l'ai posée plus tôt, pourquoi avez-vous écrit un tutoriel utilisant essentiellement la syntaxe d'une version de PHP qui n'est même pas soutenu par Zend plus si la norme actuelle est la suivante:

1. 5 + ans.
2. Disponible presque partout en raison de son âge et des prestations d'ensemble.
3. Le meilleur moyen d'aller d'un point de vue technique (PHP 5 + a effectivement modificateurs de la visibilité membres, classes et méthodes abstraites, les interfaces, etc.)

Il Ca me semble étrange que le youd écrire un tutoriel qui commence essentiellement quelqu'un sur la voie de PHP 4, puis dire à la fin "Ill expliquer comment faire de la bonne façon dans un autre tutoriel.
  • Rabid Dog
  • Web Master
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Mai 21, 2004
  • Messages: 3229
  • Loc: South Africa
  • Status: Offline

Message Novembre 19th, 2009, 9:27 am

HAHAHAHAHAHAHA comme tous les mots-clés nouvelle fantaisie en PHP 5 font TOUTE DIFFERENCE!

LOL c'était une bonne tentative (PHP 5) pour la faire ressembler à la langue appropriée. D'ailleurs, le titre est la compréhension des classes, ne comprenant pas la POO. Les choses dont vous parlez sont intrinsèques à la POO
Watch me grow
  • genux
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Jan 22, 2010
  • Messages: 106
  • Loc: UK
  • Status: Offline

Message Janvier 22nd, 2010, 3:42 am

bien sûr une configuration de classe, en PHP 5 est le type normal des choses cool que la POO a ..

privé
public
et protégés

les différences sont .. ou un bon moyen de se rappeler

privé = vos soldats sont ce que vous avez!
public = n'importe qui peut les toucher! .. arhh courir!
protected = ils sont protégés par le grand public .. mais votre peuple a hérité peut encore y toucher!! ..

Afficher de l'information

  • Total des messages de ce sujet: 12 messages
  • Modérateur: Tutorial Writers
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC