Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1483 connectés 

 

 

 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7  8  9  10  11  12
Auteur Sujet :

Tuto des scripts PHP les plus demandés et des astuces.

n°1338757
Berceker U​nited
PSN : berceker_united
Posté le 04-04-2006 à 14:43:00  profilanswer
 

Reprise du message précédent :
C'est vrai c'est pratique, je pense qu'il doit pas y avoir vraiment de contre indication juste faire attention que si vous changé de language ne pas garder certain reflexe surtout si vous faite des conversions de code. :)

mood
Publicité
Posté le 04-04-2006 à 14:43:00  profilanswer
 

n°1339013
tuxbleu
renie ses origines
Posté le 04-04-2006 à 17:46:01  profilanswer
 

chaced a écrit :

Question con, comment déclarer une variable pour pas que ça fasse des E_NOTICE ?


 
C'est quoi une E_NOTICE  :??:

n°1339019
chaced
Posté le 04-04-2006 à 17:47:53  profilanswer
 

J'ai rajouté genpass3 a la page précédente :D


---------------
CPU-Z | Timespy | Mes bd
n°1339028
tuxbleu
renie ses origines
Posté le 04-04-2006 à 17:56:36  profilanswer
 

Berceker United a écrit :

L'initialiser dans le constructeur. En php il est possible de le faire dans la zone de déclaration des attributs mais tu ne peux pas faire par exemple var $mon_array = array(); .
Mon avis personnel c'est de pas le placer dans la zone des attributs mais dans le constructeur. J'ai tenté de le faire hors constructeur en C# et java et je me rappelle que je m'étais fais jeter en l'air comme un clep's  [:ciler]


 
En java j'ai un gros doute.
Rien ne t'empeche lors de la déclaration de faire  
int[] tab = new int[5] ;
par contre, il doit falloir préciser la taille, pasque ca ca doit planter :
int[] tab = new int[] ;
 
Bon, moipar habitude, je fais :
int[] tab ;
et dans le constructeur, je fais :
tab[] = new tab [5] ;
 
Je trouve ca plus propre (bon j'ai zappé pour l'exemple la déclaration d'une constante égale à 5).

n°1339031
chaced
Posté le 04-04-2006 à 18:03:00  profilanswer
 

ce n'est pas plutot int tab[]=.. c'est peut etre du C...


---------------
CPU-Z | Timespy | Mes bd
n°1339035
zapan666
Tout est relatif
Posté le 04-04-2006 à 18:12:24  profilanswer
 

chaced a écrit :

ce n'est pas plutot int tab[]=.. c'est peut etre du C...


 
en java

Code :
  1. int[] tab = new int[5];


et  

Code :
  1. int tab[] = new int[5];


sont tous les deux valides et identiques (en tout cas, je connais pas la différence entre les deux...)


---------------
my flick r - Just Tab it !
n°1339099
Berceker U​nited
PSN : berceker_united
Posté le 04-04-2006 à 19:48:31  profilanswer
 

tuxbleu a écrit :

En java j'ai un gros doute.
Rien ne t'empeche lors de la déclaration de faire  
int[] tab = new int[5] ;
par contre, il doit falloir préciser la taille, pasque ca ca doit planter :
int[] tab = new int[] ;
 
Bon, moipar habitude, je fais :
int[] tab ;
et dans le constructeur, je fais :
tab[] = new tab [5] ;
 
Je trouve ca plus propre (bon j'ai zappé pour l'exemple la déclaration d'une constante égale à 5).


En faite je voulais dire qu'il me semble pas possible.
Il me semble.

Code :
  1. Class maclass{
  2.   int Toto = 12;
  3. ...
  4. }


n°1339483
tuxbleu
renie ses origines
Posté le 05-04-2006 à 10:53:24  profilanswer
 

Berceker United a écrit :

En faite je voulais dire qu'il me semble pas possible.
Il me semble.

Code :
  1. Class maclass{
  2.   int Toto = 12;
  3. ...
  4. }



 
Heu, j'ai un gros doute là.
Moi j'initialise mes variables dans le constructeur, alors là j'ai un peu de mal à te répondre.
Et comme ici au taf j'ai pas la JDK d'installé, j'ai éteins mon server chez moi qu'a la JDK, je peux pas tester.
 
M'enfn globalement, je vois pas l'interet de la faire à la déclaration. [:airforceone]

n°1339488
Djebel1
Nul professionnel
Posté le 05-04-2006 à 11:03:49  profilanswer
 

>M'enfn globalement, je vois pas l'interet de la faire à la déclaration.
 
bah peut-être de pas avoir à lister une fois tous les attributs, pour ensuite tous les relister dans le constructeur pour les initialiser ? je vois pas l'intéret de le faire dans le constructeur perso

n°1339500
Berceker U​nited
PSN : berceker_united
Posté le 05-04-2006 à 11:21:00  profilanswer
 

Je viens de tester sur C# et je suis désolé je me suis trompé donc au temps pour moi. :jap: il est possible d'initialiser les attributs dans la déclaration des ces derniers.

mood
Publicité
Posté le 05-04-2006 à 11:21:00  profilanswer
 

n°1339686
tuxbleu
renie ses origines
Posté le 05-04-2006 à 14:28:16  profilanswer
 

Djebel1 a écrit :

>M'enfn globalement, je vois pas l'interet de la faire à la déclaration.
 
bah peut-être de pas avoir à lister une fois tous les attributs, pour ensuite tous les relister dans le constructeur pour les initialiser ? je vois pas l'intéret de le faire dans le constructeur perso


 
 
Tu parles en java ou en php ?
 
Pasque en java, ton argument ce tient pas :
 
moi je te parles de ca :

Code :
  1. public class MaClasse {
  2. int i,j,k,l,m,n,n,o ;
  3. public MaClasse(){
  4. i=0;
  5. j=0;
  6. ...
  7. }
  8. }


 
ce qui suit ne passe pas :

Code :
  1. public class MaClasse {
  2. int i=0,j=0,k=0,l,m,n,n,o ;
  3. public MaClasse(){
  4. ...
  5. }
  6. }


 
Donc faudrait faire, pour utiliser ta méthode :

Code :
  1. public class MaClasse {
  2. int i=0;
  3. int j=0;
  4. int k=0;
  5. ...
  6. public MaClasse(){
  7. }
  8. }


 
Ce qui est du coup beaucoup plus long que la méthode que je propose, et quoi que t'en dise, c'est crade. Maintenant, rien ne t'oblige à creer plusieurs classes, des fonctions, tu peux écrire tout ton code dans le main avec des variables globales public, ca marche aussi  [:airforceone]


---------------
Mon topic de vente - Mon feed-back
n°1339696
Djebel1
Nul professionnel
Posté le 05-04-2006 à 14:33:31  profilanswer
 

je parlais en PHP (on est dans la cat java ici ?  :ange: )

n°1339698
Berceker U​nited
PSN : berceker_united
Posté le 05-04-2006 à 14:33:56  profilanswer
 

En faite le sujet se fait sur la différence entre
 

Code :
  1. Class MaClass{
  2.   var $attribut1 = 10;
  3.   var $attribut2 = 20;
  4.  
  5.   function MaClass(){
  6.     ...
  7.   }
  8. }


 
et  

Code :
  1. Class MaClass{
  2.   var $attribut1;
  3.   var $attribut2;
  4.  
  5.   function MaClass(){
  6.     $this->attribut1 = 10;
  7.     $this->attribut2 = 20;
  8.   }
  9. }

n°1339710
tuxbleu
renie ses origines
Posté le 05-04-2006 à 14:43:57  profilanswer
 

Djebel1 a écrit :

je parlais en PHP (on est dans la cat java ici ?  :ange: )


Remarque quoiqu'il en soit, la question reste la même.
Je suis de ceux qui pense qu'on doit faire les initialisations dans le constructeur, et que c'est un peu fait pour ca  [:airforceone]


---------------
Mon topic de vente - Mon feed-back
n°1339712
Berceker U​nited
PSN : berceker_united
Posté le 05-04-2006 à 14:45:05  profilanswer
 

Voici une sage parole :D
Petite anecdote.
En C# ou PHP j'ai besoin des fois de réinitialiser certain attribut et j'ai une methode pour ça elle porte toujours le meme non.

Code :
  1. Function DemarrageAuCrique(){
  2.   ...
  3. }

Message cité 1 fois
Message édité par Berceker United le 05-04-2006 à 15:29:45
n°1339720
Djebel1
Nul professionnel
Posté le 05-04-2006 à 14:51:58  profilanswer
 

bah moi je vous demande de m'expliquer pourquoi :)
je n'ai rien contre cette idée, j'aimerais juste savoir qu'est-ce que ça apporte.
 
Dans l'exemple de Berceker juste au-dessus, moi je vois juste une consommation de lignes inutiles

Message cité 1 fois
Message édité par Djebel1 le 05-04-2006 à 14:52:48
n°1339725
Berceker U​nited
PSN : berceker_united
Posté le 05-04-2006 à 14:54:44  profilanswer
 

Djebel1 a écrit :

bah moi je vous demande de m'expliquer pourquoi :)
je n'ai rien contre cette idée, j'aimerais juste savoir qu'est-ce que ça apporte.
 
Dans l'exemple de Berceker juste au-dessus, moi je vois juste une consommation de lignes inutiles


Desolé mon serveur fonctionne a l'essence je sait pas pour les diesel :D


Message édité par Berceker United le 05-04-2006 à 14:55:08
n°1339736
tuxbleu
renie ses origines
Posté le 05-04-2006 à 15:11:55  profilanswer
 

Berceker United a écrit :

Voici une sage parole :D
Petite anecdote.
En C# ou PHP j'ai besoin des fois de réinitialiser certain attribut et j'ai une methode pour ça elle porte toujours le meme non.

Code :
  1. Function DemarrageAuCrique(){
  2.   ...
  3. }



 
 :lol:  
Simpa le nom  :lol:


---------------
Mon topic de vente - Mon feed-back
n°1339755
Djebel1
Nul professionnel
Posté le 05-04-2006 à 15:38:03  profilanswer
 

t'aurais du l'appeler pousserDansLaPente sinon :D

n°1395036
Berceker U​nited
PSN : berceker_united
Posté le 26-06-2006 à 15:34:46  profilanswer
 

un petit Up qui ferra du bien à certain. Bientot j'expliquerais les nouveauté de PHP5 avec les classes.

n°1395471
Pastoufois
Posté le 27-06-2006 à 08:50:34  profilanswer
 

Juste un petit  [:abnocte invictus]  histoire de retrouver ce topic bien utile.
je debute en php et Sql.
 
bonne idée en tout cas de rassembler les infos utiles pour les noobs dans un topic comme celui la.

n°1395523
Sebastien
Posté le 27-06-2006 à 10:37:22  profilanswer
 

Je reprends la fonction :
faire un select via DB
 

Code :
  1. $req ="SELECT id,nom FROM ma_table ORDER BY nom";
  2. $rs  = mysql_query($req);
  3. //ou
  4. $rs  = mysql_unbuffered_query($req);//Utile pour les requêtes ayant beaucoup d'enregistrements, ne fonctionne pas en requête croisée. get la doc ;)
  5. while($data = mysql_fetch_row($rs)){
  6. $id[ $i ]  = $data[0];
  7. $nom[ $i ] = $data[1];
  8. $i++;
  9. }


 
moyen que tu remplaces le fetch_row par un fetch_assoc ou fetch_array et virer les index (0 et 1).
Y a pas pire je trouve pour reprendre le code de quelqu'un d'autre.

Message cité 1 fois
Message édité par Sebastien le 27-06-2006 à 10:38:49
n°1395527
Ryoh
Posté le 27-06-2006 à 10:42:50  profilanswer
 
n°1395797
tuxbleu
renie ses origines
Posté le 27-06-2006 à 15:45:54  profilanswer
 

Ryoh a écrit :

marque page


http://forum-images.hardware.fr/themes_static/images_forum/1/favorisb.gif
 
 :o


---------------
Mon topic de vente - Mon feed-back
n°1395914
Berceker U​nited
PSN : berceker_united
Posté le 27-06-2006 à 17:43:42  profilanswer
 

Sebastien a écrit :

Je reprends la fonction :
faire un select via DB
 

Code :
  1. $req ="SELECT id,nom FROM ma_table ORDER BY nom";
  2. $rs  = mysql_query($req);
  3. //ou
  4. $rs  = mysql_unbuffered_query($req);//Utile pour les requêtes ayant beaucoup d'enregistrements, ne fonctionne pas en requête croisée. get la doc ;)
  5. while($data = mysql_fetch_row($rs)){
  6. $id[ $i ]  = $data[0];
  7. $nom[ $i ] = $data[1];
  8. $i++;
  9. }


 
moyen que tu remplaces le fetch_row par un fetch_assoc ou fetch_array et virer les index (0 et 1).
Y a pas pire je trouve pour reprendre le code de quelqu'un d'autre.


Personnellement j'utilise le row que le array car le erray utilise plus de place, enfin bon ça peut avoir une incidence sur des milliers d'enregistrements pas sur une dizaine.

n°1396286
Sebastien
Posté le 28-06-2006 à 09:37:23  profilanswer
 

J'ai recupere un projet pour mon équipe ou dessus on avait une évolution à faire ainsi que la maintenance de l'application.
J'ai demandé à faire un audit du code dessus, premiere chose mise en avant c'était ca.
Dans le cadre d'un travail personnel c'est peut etre pas grave, mais je peux te dire que pour un projet d'entreprises, ca a une importance de ne pas coder comme ca, car generalement ce qui suit c'est pas trois lignes de codes, mais des traitements importants. La reprise d'un code avec juste des tableaux indexés c'est direct 30% de couts supplémentaire, si ce n'est plus.
Faut prendre de bonnes habitudes, c'est un reflexe à avoir comme le fait de citer ses champs et de pas mettre un simple select *

n°1396440
Berceker U​nited
PSN : berceker_united
Posté le 28-06-2006 à 12:08:38  profilanswer
 

Sebastien a écrit :

J'ai recupere un projet pour mon équipe ou dessus on avait une évolution à faire ainsi que la maintenance de l'application.
J'ai demandé à faire un audit du code dessus, premiere chose mise en avant c'était ca.
Dans le cadre d'un travail personnel c'est peut etre pas grave, mais je peux te dire que pour un projet d'entreprises, ca a une importance de ne pas coder comme ca, car generalement ce qui suit c'est pas trois lignes de codes, mais des traitements importants. La reprise d'un code avec juste des tableaux indexés c'est direct 30% de couts supplémentaire, si ce n'est plus.
Faut prendre de bonnes habitudes, c'est un reflexe à avoir comme le fait de citer ses champs et de pas mettre un simple select *


Je suis daccord avec toi sur le faite qu'il faut le plus explicite possible. Personnellement, j'utilise quand même le xxx_fetch_row($rs) mais sous cette forme.

Code :
  1. $req ="SELECT id,nom FROM ma_table ORDER BY nom";
  2.       $rs  = mysql_query($req);
  3.       //ou   
  4.       $rs  = mysql_unbuffered_query($req);//Utile pour les requêtes ayant beaucoup d'enregistrements, ne fonctionne pas en requête croisée. get la doc ;)
  5.  
  6.       while($data = mysql_fetch_row($rs)){
  7.          $id[ $i ]  = $data[0];  //id
  8.          $nom[ $i ] = $data[1];//nom
  9.          $i++; 
  10.       }


Pour le select je précise toujours les champs qui t'a toute me les taper ça me gène pas car je pars du principe qu'une requête doit écrite une seule fois et/ou toute les requêtes doit être toute être placées au même endroit.

n°1396623
vinoromano
saoule
Posté le 28-06-2006 à 15:18:37  profilanswer
 

Très bonne idée de poster les topics. En même temps il faut encourager les débutants comme moi à consulter la documentation.
Merci

n°1405319
Berceker U​nited
PSN : berceker_united
Posté le 12-07-2006 à 11:00:14  profilanswer
 

32 - C’est quoi toute cette smala avec les classes de php5 ?  [:ciler]
 
 
  [:papy] Effectivement mon jeune corbake ça te le met dans le bec toute c’est nouveauté ? Je vais expliqué un peut les nouveauté concernant dans la poo.  
 
La visibilité :
   
 Maintenant il est possible de choisir la lisibilité des méthodes et des attributs avec les mots clés suivants : private, protected, public .
Rappellez-vous en php4 il est possible de faire ceci
 

Code :
  1. Class Mere{
  2. var $Nom ;
  3. Function setNom($pNom){
  4.  If(trim(str_len($pNom))>0){
  5.   $this->Nom = $pNom ;
  6.   Return true ;
  7.  }else{
  8.   Echo « erreur » ;
  9.   Return false ;
  10.                }
  11.        }
  12. }
  13. $objMere = new Mere() ;
  14. $ objMere ->Nom = « » ;


 
Vous comprenez que là il est très facile d’esquiver une méthode de contrôle. Lorsque vous travaillez en équipe et que le développeur de la classe a mitonné un belle classe avec des mécanismes de contrôles est bien ficelé au fine herbe et qu’un charlot utilise cette classe en passant directement par les attributs il y a des quoi être énervé et mettre en danger toute une application. La nouveauté c’est que maintenant il est possible de choisir la lisibilité des éléments d’une classe.
 

Code :
  1. Class Mere{
  2. Private  $Nom ;
  3. Function setNom($pNom){
  4.  If(trim(str_len($pNom))>0){
  5.   $this->Nom = $pNom ;
  6.   Return true ;
  7.  }else{
  8.   Echo « erreur » ;
  9.   Return false ;
  10.                 }
  11.         }
  12. }
  13. $objMere = new Mere() ;
  14. $ objMere ->Nom = « » ;


 
En PHP5 ceci va générer une erreur car là il y a une tentative d’accéder à un attributs qui n’a pas de visibilité sur l’extérieur ceci est possible en plaçant  le mot « private » devant l’attribut. Le charlot en question n’aura pas d’autre choix que de passer par la méthode «setNom() » . Il est également possible de choisir la lisibilité d’une méthode en plaçant la visibilité devant la méthode comme ceci :
 

Code :
  1. Class Mere{
  2. Private  $Nom ;
  3. Public Function setNom($pNom){
  4.  If(trim(str_len($pNom))>0){
  5.   $this->Nom = $pNom ;
  6.   Return true ;
  7.  }else{
  8.   Echo « erreur » ;
  9.   Return false ;
  10.                }
  11.         }
  12. }


 
Ainsi, la fonction « setNom() » est visible de l’extérieur.
Il faut savoir que ce n’est pas obligatoire d’indiquer la visibilité mais par défaut si c’est vide alors c’est « public » .
Il y a une visibilité dite «protected»  
 

Code :
  1. Class Mere{
  2. Private  $Nom ;
  3. Public Function setNom($pNom){
  4.  If(trim(str_len($pNom))>0){
  5.   $this->Nom = $pNom ;
  6.   Return true ;
  7.  }else{
  8.   Echo « erreur » ;
  9.   Return false ;
  10.                 }
  11.        }
  12. }
  13. Class Fille extend Mere{
  14. Public Function setNom($pNom){
  15.  $this->Nom = $pNom ;
  16.         }
  17. }


 
Dans ce cas précis php va retourner une erreur malgré que vous ayez hérité de la classe «Mere». En faite « private » n’offre une visibilité seulement dans la classe qu’il a implémente et personne d’autre. Pour que l’attribut puisse être visible dans les classes filles mais invisible de l’extérieur il faut utiliser «protected » ainsi la méthode « setNom() » de la classe Fille peut utiliser l’attribut « Nom ».

Récapitulation :

 
Public : Visibilité à l’extérieur d’une classe.
Private : Invisible depuis l’extérieur.
Protected : Invisible depuis l’extérieur mais visible entre les classes hérité.
C'est rentré dans vos tête de piaf ?  [:papy]  
 
 
Destructeur / Constructeur[/b]
 
Dans la version 4 de php il y avait déjà la notion de constructeur. C'est simple c'étais la methode portant le même nom que la classe. Exemple

Code :
  1. //PHP4
  2. Class Corbeau{
  3.   function Corbeau(){
  4.     echo 'Je suis un petit corbeau';
  5.   }
  6. }
  7. $obj = new Corbeau(); //Affiche : Je suis un corbeau.


 
Comme vous le savez un constructeur est une methode qui est appelé automatiquement lorsqu'une classe est instancié. Dans la version 5 de PHP la syntaxe est différente. Il faut l'appelé avec [i]__construct. Attention à bien placer deux underscores.  
 

Code :
  1. //PHP5
  2. Class Corbeau{
  3.   function __construct(){
  4.     echo 'Je suis un petit corbeau';
  5.   }
  6. }
  7. $obj = new Corbeau(); //Affiche : Je suis un corbeau.


 
 
Mais il manquait quelque chose  [:chewyy] et ce quelque chose PHP5 l'apporte. C'est le destructeur

Spoiler :

http://www.lapropagationduchaos.net/what/xor/Blade2.gif


 
En quoi consiste le destructeur ?
A l'inverse du constructeur (sans blague  :sarcastic: ). Lorsque objet est détruit via un unset, null, vide ou réinitialisé une methode est automatiquement appellé qui est __destruct(). Comme pour le construct il ne faut pas oublier les deux underscores. Voici un exemple.
 

Code :
  1. //PHP5
  2. Class Voiture{
  3.   function __construct(){
  4.       echo 'Je demarre';
  5.   }
  6.   function __destruct(){
  7.      echo 'Je m'arrête';
  8.   }
  9. }
  10. $obj = new Voiture(); //Affiche : Je demarre.
  11. $obj = null; //Affiche : Je m'arrête;


 
En quoi cela peut être utile ?
De manière simple, vous pouvez avoir une classe qui ouvre et qui ferme la connexion. Si l'ouverture se fait dans le constructeur et que la fermeture dans le destructeur vous vous assuré ainsi que les choses soit bien faite.
 
Destruction en cascade
Imaginé que vous ayez un chateau de carte sur x niveau. Arrivé à la fin vous prenez une photo et maintenant c'est le moment de le détruire. Pour garantire qu'il sera en coup vous n'allez pas commencer par le haut au risque que la structure de base reste début. Vous allez commencé par le bas en retirant des carte à la base. En objet, il est possible de faire ce même principe. Vous avez un ensemble d'objet qui encapsule d'autre (collection d'objet). Vous avez un objet qui contient une collection d'objet et chaque élément de ces objet collectionne d'autre objet. Là vous avez  une sorte d'arbre à trois niveaux.  
Comment être sur que les objet vont executer leur destructeur  dans l'ordre ? C'est à dire 3, 2 et premier niveau comme pour le cateau de carte.
Dans la classe qui encapsule le tous il faut placer une méthode qui va détruire toutes les collections qu'il possede dans le destructeur. Dans la classe du deuxième niveau il faut faire la même chose. Ainsi, vous vous assurez que les éléments se feront dans l'ordre.  
 

Code :
  1. class Niveau1{
  2.   private $obj; //collection d'objet
  3.   function __construct(){
  4.     for($i=0;$i<10;$i++){
  5.       $this->obj[$i] = new Niveau2($i);
  6.     }
  7.   }
  8.   function __destruct(){
  9.     echo 'harrrgg!... je suis mort niveau 1';
  10.     for($i=0;$i<10;$i++){
  11.       $this->obj[$i] = null;
  12.     }
  13. }
  14. class Niveau2{
  15.   private $indice; //indice.
  16.   private $obj; //collection d'objet
  17.   function __construct($indice)
  18.     $this->obj = array();
  19.     echo 'Niveau2 index : '.$indice;
  20.     $this->indice=$indice;
  21.     for($i=0;$i<10;$i++){
  22.       $this->obj[$i] = new Niveau3($i);
  23.     }
  24.   }
  25.   function __destruct(){
  26.     echo 'harrrgg!... je suis mort niveau 2 indice:'.$this->indice;
  27.     for($i=0;$i<10;$i++){
  28.       $this->obj[$i] = null;
  29.     }
  30.   }
  31. }
  32. class Niveau3{
  33.   private $indice;
  34.   function __construct($indice){
  35.     echo 'Niveau3 index : '.$indice;
  36.      $this->indice=$indice;
  37.   }
  38.   function __destruct(){
  39.     echo 'harrrgg!... je suis mort niveau 3 indice:'.$this->indice;
  40.   }
  41. }

Message cité 1 fois
Message édité par Berceker United le 16-08-2006 à 11:03:38
n°1420540
Donzeky
Le bleu c'est la vie.
Posté le 05-08-2006 à 19:51:04  profilanswer
 

Drapo :o

n°1424412
Berceker U​nited
PSN : berceker_united
Posté le 11-08-2006 à 14:52:17  profilanswer
 

Mise à jour sur les objets Constructeur/Destructeur.

n°1424457
Sebastien
Posté le 11-08-2006 à 15:44:30  profilanswer
 

Relis toi mais ton truc bien qu'il marche ne marche pas comme tu crois
(en fait pour le Niveau1 tu fais un $obj au lieu de $this->obj, ce qui fait que ton container meurt dès la sortie du constructeur et non pas pendant le destructeur.

n°1424470
Woutcha
Posté le 11-08-2006 à 15:54:11  profilanswer
 

Berceker United a écrit :


Destruction en cascade cascade
Imaginé que vous ayez un chateau de carte sur x niveau. Arrivé à la fin vous prenez une photo et maintenant c'est le moment de le détruire. Pour garantire qu'il sera en coup vous n'allez pas commencer par le haut au risque que la structure de base reste début. Vous allez commencé par le bas en retirant des carte à la base. En objet, il est possible de faire ce même principe. Vous avez un ensemble d'objet qui encapsule d'autre (collection d'objet). Vous avez un objet qui contient une collection d'objet et chaque élément de ces objet collectionne d'autre objet. Là vous avez  une sorte d'arbre à trois niveaux.  
Comment être sur que les objet vont executer leur destructeur  dans l'ordre ? C'est à dire 3, 2 et premier niveau comme pour le cateau de carte.
Dans la classe qui encapsule le tous il faut placer une méthode qui va détruire toutes les collections qu'il possede dans le destructeur. Dans la classe du deuxième niveau il faut faire la même chose. Ainsi, vous vous assurez que les éléments se feront dans l'ordre.  


 
L'orthographe [:bozocarzu]

n°1425654
Funkpeck
Je suis une citation.
Posté le 15-08-2006 à 17:26:44  profilanswer
 
n°1425785
serveur
Posté le 15-08-2006 à 23:44:15  profilanswer
 

 [:rarules]

n°1425808
Berceker U​nited
PSN : berceker_united
Posté le 16-08-2006 à 07:31:38  profilanswer
 

Sebastien a écrit :

Relis toi mais ton truc bien qu'il marche ne marche pas comme tu crois
(en fait pour le Niveau1 tu fais un $obj au lieu de $this->obj, ce qui fait que ton container meurt dès la sortie du constructeur et non pas pendant le destructeur.


Corrigé!

n°1425872
Berceker U​nited
PSN : berceker_united
Posté le 16-08-2006 à 11:03:04  profilanswer
 

Woutcha a écrit :

L'orthographe [:bozocarzu]


 


 
Oui je sais mais j'ai pas pu prendre le temps de relire de plus le code est directement édité dans le le bloc j'étais au boulot un peut sourveillé de partout. Dès que j'aurais plus de temps je vais remettre un coup de propre et reformuler certaine données. Pour ce genre de choses faite le plutôt en mp qu'ici.


Message édité par Berceker United le 16-08-2006 à 11:04:25
n°1426826
Funkpeck
Je suis une citation.
Posté le 17-08-2006 à 19:56:53  profilanswer
 

Me concernant il s'agissait surtout d'une drapalisation discrète :)

n°1428217
Djebel1
Nul professionnel
Posté le 20-08-2006 à 21:45:44  profilanswer
 

Berceker United a écrit :

Personnellement j'utilise le row que le array car le erray utilise plus de place, enfin bon ça peut avoir une incidence sur des milliers d'enregistrements pas sur une dizaine.


Performance :  Une chose importante à noter est que l'utilisation de mysql_fetch_array() n'est pas significativement plus lent que l'utilisation de mysql_fetch_row(), alors qu'il fournit des valeurs significatives ajoutées.
http://www.php.net/manual/fr/funct [...] -array.php
 
Je suis d'accord avec les remarques faites. Reprendre un code sans du fetch_array est une horreur. Après ok ça prend plus de mémoire, mais bon la mémoire sur les serveurs, ça devient de moins en moins limitant, et ça joue pas sur les perfs, donc banco :D

Message cité 1 fois
Message édité par Djebel1 le 20-08-2006 à 21:46:47
n°1428232
Berceker U​nited
PSN : berceker_united
Posté le 20-08-2006 à 22:12:58  profilanswer
 

Je suis daccord avec toi. En faite, ça peut s'en ressentir que sur des millions et des millions d'enregistrements et encore :D. Alors qu'a coté il se pourrait qu'ont code comme un clochard et c'est là que ça fait ramer [:ddr555]

n°1582075
Ming75
Posté le 03-07-2007 à 17:59:44  profilanswer
 

Bonjour,
J'aimerai faire 3 boutons dans une page.
et chacun des boutons va executer un script qui sont situé sur ma propre machine. Enfin tout se passe sur ma propre machine.
Dsl mais je connais rien en php alors si vous pouvez m'aider :D
:hello:

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7  8  9  10  11  12

Aller à :
Ajouter une réponse
 

Sujets relatifs
controles des champ et correction du formulaire PHP[PHP]Récupèrer une ressource d'un autre site et l'exploiter
Php et Html[HTML/PHP] Réaliser une message box
jpgraph et phpCode source d'un fichier PHP
Pervasive SQL et php[PROB] PHP debutant - Retour a la ligne
page précédente en phpRSS et PHP
Plus de sujets relatifs à : Tuto des scripts PHP les plus demandés et des astuces.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR