copie d'objet en php5

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : copie d'objet en php5

Re: copie d'objet en php5

par sadeq » 26 avr. 2005, 10:07

Salut à tous,
....Aparemment, ça viendrai du fait que PHP5 soit orienté objet. ....

function copy($other) {
$xf = $this->_xf_index; // Backup XF index
$this = $other; // Copy properties
$this->_xf_index = $xf; // Restore XF index
}
Attention
Non seulement au nom de la fonction mais à son fonctionnement objet.
Je m'explique :
L'affectation d'objet à objet se fait par référence par conséquent l'objet $other ne peut être lié directement à $this qui est la classe.
d'ailleurs, affecter l'objet $other dans "$this" me surprend car on n'a pas le droit de d'affecter un objet à une classe. mais on peut la remplacer par des affectations de proriétés.
Du coups t'as plus besoin de stocker des valeurs pour les restaurer après (ce qui est une perte de temps)

Exemple :
<?
class produit{
public $nom;
public $prix;
public function copier($x) { 
$this->nom = $x->nom; 
$this->prix = 0; 
}
}


$p1 = new produit(); 
$p1->nom="Un produit"; 
$p1->prix=100; 
$p2 = new produit(); 
$p2->copier($p1); 
echo "<p>$p1->nom : ".$p1->prix; //affiche Un produit : 100 
echo "<p>$p2->nom : ".$p2->prix; //affiche Un produit : 0 
?>

par Cyrano » 26 avr. 2005, 09:33

J'entend bien iclo, mais ça ne justifie en rien l'emploi de l'anglais pour autant : ce n'est pas parce que les langages viennent la plupart du temps des USA qu'on doit en plus se plier à leur langue. Je ne bosse pas pour des anglais ou des américains, je bosse en m'organisant pour que mon application fonctionne sans bug et pour ça, je ne ressens pas la nécessité absolue de me rajouter une contrainte linguistique avec une langue que je ne maîtrise pas et que la plupart des développeurs en France se contente de baragouiner. Par contre je sais que si je file un script commenté en français destiné à un public francophone, je serai compris.

Bien entendu, participer à un projet d'envergure chez Sourceforge par exemple peut impliquer l'emploi de l'anglais pour que tous ceux qui participent autour de la planete puissent suivre. mais je n'ai aucun complexe d'infériorité face aux américains parce que je ne parle que très mal leur langue même si j'ai silloné les routes des USA pendant presque trois ans.

par iclo » 26 avr. 2005, 09:24

La fonction copy() n'est pas tout à fait une nouveauté en PHP puisqu'elle fonctionne depuis PHP3

Ce n'est jamais une bonne idée d'utiliser ce genre de nom quand on développe.

J'irai beaucoup plus loin: je suis toujours amusé de voir des francophone coder en anglais : d'abord je trouve que c'est à la limite du snobisme, ensuite je trouve que c'est se rajouter des limites. Nous avons en français un vocabulaire assez riche dont nous avons l'avantage de pouvoir nous servir en programmation avec l'agrément de ne pratiquement jamais risquer d'entrer en conflit avec un mot réservé d'un langage élaboré à l'origine.... en anglais;)

CQFD : les fonctions objet de PHP5 ne sont pas en cause, il faut changer le nom de la fonction ;)
La langue véhiculaire en informatique est et reste l'anglais.
Il n'est pas toujours facile de prévoir ce que va devenir un code.
Pour un site web perso, c'est clair que l'usage de l'anglais ne se justifie pas vraiment.
Pour le moment, en tant que stagiaire, je bosse sur une application Java, on m'a demandé de programmer en anglais, car les partenaires futurs qui pourraient bosser dessus par après pourrtait être de plusieurs universités dans le monde.
Personnelement, je trouve parfois inutiles certaines traductions loufoques de termes techniques.
C'est la même chose en aéronautique, où certaines compagnies aériennes française, s'obstinent à être les seules à traduire les mos techniques, parfois par des mots 3 fois plus longs que personnes d'autres utilisent...

par Invité » 26 avr. 2005, 08:50

Merci pour vos réponse,
l'explication de Cyrano était exacte. Mon script tourne parfaitement maintenant.

par Cyrano » 25 avr. 2005, 18:25

La fonction copy() n'est pas tout à fait une nouveauté en PHP puisqu'elle fonctionne depuis PHP3

Ce n'est jamais une bonne idée d'utiliser ce genre de nom quand on développe.

J'irai beaucoup plus loin: je suis toujours amusé de voir des francophone coder en anglais : d'abord je trouve que c'est à la limite du snobisme, ensuite je trouve que c'est se rajouter des limites. Nous avons en français un vocabulaire assez riche dont nous avons l'avantage de pouvoir nous servir en programmation avec l'agrément de ne pratiquement jamais risquer d'entrer en conflit avec un mot réservé d'un langage élaboré à l'origine.... en anglais;)

CQFD : les fonctions objet de PHP5 ne sont pas en cause, il faut changer le nom de la fonction ;)

par dandy » 25 avr. 2005, 15:44

Il y a déjà une fonction copy qui existe je pense pas que t'aisle droit d'en créer une nouvelle :? . Si c'est le cas php4 devrait renvoyer une erreur aussi.
Je poste cette réponse à tout hasard ce n'est certainement pas la bonne :? .

copie d'objet en php5

par Invité » 25 avr. 2005, 15:32

Salut à tous,
J'avais créé une fonction sous PHP4 qui ne marche plus sous PHP5. Aparemment, ça viendrai du fait que PHP5 soit orienté objet. Je n'ai pas trouvé de solution donc je vous laisse le code au cas où l'un de vous aurai une idée.

function copy($other) {
$xf = $this->_xf_index; // Backup XF index
$this = $other; // Copy properties
$this->_xf_index = $xf; // Restore XF index
}

Merci