Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/01/2012, 11h30   #1
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 432
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2007
Messages : 432
Points : 94
Points : 94
Par défaut probleme d'attributs en PHP

Salut à tous,

je suis dans l'étude d'un code et j'avoue bloquer sur la manipulation d'attributs ou de méthodes de classes propriétaire fait en PHP

Voici le bout de code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
class dateOp {	
	function dateOp($dat,$format="jj/mm/aaaa hh:ii:ss") {
		$this->errno = array();
 
		if (strlen($dat)!=strlen($format)) {
			$this->_error("Format de date incompatible avec la date fournie");
			return false;
		}
 
		$this->dat['origine']=$dat;
		$this->format=strtolower($format);
		return $this->_ExplodeDate($this->dat,$this->format);
	}
 
	function AjouteJours($nb) {}
	function AjouteMois($nb) {}
	function AjouteAnnees($nb) {}
	function AjouteHeures($nb) {}
	function AjouteMinutes($nb) {}
	function AjouteSecondes($nb) {}
	function DiffenrenceEntreDate($dat,$format="jj/mm/aaaa hh:ii:ss") {}
 	function GetDate($format="jj/mm/aaaa") {}
 	function _ExplodeDate(&$dat,$format) {}
	function _error($str) {}
}
d'ou sort cet attribut errno ? Il n'est pas déclaré en début de classe.
idem pour dat['origine'] et format ?

dois-je en déduire que les attributs de classe PHP peuvent être créé à la volée ? Difficile de répondre car sur le web les démonstration de manipulation d'attribut de classe incorpore toujours les attributs à manipulé en début de classe.


Merci pour votre aide.
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2012, 11h38   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Citation:
dois-je en déduire que les attributs de classe PHP peuvent être créé à la volée ?
Oui.

Citation:
Difficile de répondre car sur le web les démonstration de manipulation d'attribut de classe incorpore toujours les attributs à manipulé en début de classe.
Ne pas déclarer les propriétés d'une classe est une pratique mauvaise.
Là apparemment il s'agit d'un vieux script PHP4 (constructeur == méthode avec nom de la classe).
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/01/2012, 11h38   #3
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
C'est juste codé avec les pieds.

En principe une variable qui à besoin d'être utilisée dans toute la classe sera déclaré en début de classe avec une visibilité (portée) associée :

Code :
1
2
3
class Machin
{
    private $variable
une variable à utiliser uniquement dans une méthode n'aura pas de visibilité (puisque limité à la méthode) et sera utiliser comme une variable classique.

Toute autre façon de faire est à proscrire pour éviter les bugs et les problèmes de sécurité.

Edit ---
même en php4 on déclare les variable en début de classe avec var si ma mémoire est bonne
grunk est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/01/2012, 11h44   #4
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 432
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2007
Messages : 432
Points : 94
Points : 94
Ok merci à vous les gars !

Je me doutais bien qu'il y avait un problème quelques part mais comme j'arrive sur un programme déjà codé, j'avais du mal à critiqué d'abord les anciens developpeur plutôt que moi-même.

Enfin vous confirmer que c'est crade. Ca me rassure car j'avais déjà cette impression sur le reste du code, que je vous épargne à la lecture.

paix sur vos coeurs et vos âmes
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h31.


 
 
 
 
Partenaires

Hébergement Web