Page 1 sur 1
Surcharge d'operateur incrémental
Posté : 10 sept. 2008, 15:18
par xmanoux
Bonjour,
Par le plus grand des hasards,
Est-ce que quelqu'un a réussi à surcharger l'opérateur d'incrémentation ( ++ ) par une methode maison ?
Code : Tout sélectionner
//Exemple:
class date() {
function ajouterJour(nbjour) {...}
}
//Ce que je veux;
$date = new date() ;
$date++ ; // je voudrais que ça effectue $date->ajouterJour(1)
Merci d'avance... Manu
Posté : 10 sept. 2008, 16:30
par _activmik
Et :
$date = new date;
$date_next = $date->ajouterJour(1);
Non ?
Tu te compliques la vie pour rien, surtout si tu as défini une classe et une fonction au départ...
Posté : 10 sept. 2008, 16:34
par xmanoux
Merci
Oui, je savais le faire avec next, mais je veux savoir si on peut surcharger '++' en php
Posté : 10 sept. 2008, 16:38
par Calimero
Merci
Oui, je savais le faire avec next, mais je veux savoir si on peut surcharger '++' en php
Non, c'est strictement impossible

Posté : 10 sept. 2008, 16:40
par xmanoux
thx

Posté : 10 sept. 2008, 16:43
par _activmik
Sinon sans passer par une fonction, si tu incrementes ta variable $date avec l'opérateur ++ il te rajoutera 1 au dernier paramètre.
Exemple :
$date = date("Y/m/d");
echo $date."<br/>";
$date++;
echo $date;
T'afficheras :
2008/09/10
2008/09/11
[edit]Cependant ce ne sera pas considéré comme une date() donc attention au fin de mois / d'année

Posté : 10 sept. 2008, 18:17
par doctorrock
Heu, vous avez pensé à
ext/operator dans pecl ?
Une extension cool ^^
Posté : 10 sept. 2008, 18:32
par Sékiltoyai
Euh, pecl et bêta, je crois que tout est dit…
Posté : 11 sept. 2008, 00:51
par Calimero
Euh, pecl et bêta, je crois que tout est dit…
En clair ça veut dire confidentiel et peu fiable. Je suis content de savoir que ça existe en tout cas (j'avais donc tort dans mon intervention précédente, je le reconnais), mais comme Sékiltoyai le souligne, je ne vois pas trop qui voudrait utiliser ça en l'état
L'as tu toi-même utilisée dans des projets conséquents, doctorrock ?
Posté : 11 sept. 2008, 11:43
par doctorrock
Pas pour des projets conséquents, mais elle fonctionnait bien sur les tests que j'ai fait.
Faut voir en poussant un peu loin, au pire, le code source C reste modifiable hein ^^ (bon c'est sur faut être skillé sur le Zend Engine, mais l'abstraction est bonne et ya des bouquins qui traitent de ça pour les intéréssés

)