Question

Cette question est liée à downcasting php5

Quel est le coût de cette php Downcasting solution de contournement?

Est-ce php solution de downcasting trop cher?

Je l'ai répétai microtimes et il semble que cela prend comme 0,001. Je me demande si elle pourrait être un problème dans un grand foreach.

public static function to($obj) {

    return unserialize(preg_replace(
    '/^O:\d+:\"(\w+)/',
    'O:' . strlen('this_class_name') . ':"' . 'this_class_name',
    serialize($obj)));
}

Les solutions proposées dans http://php.net/manual/ de fr / language.types.type-juggling.php commentaires sont similaires.

Était-ce utile?

La solution

En présentant les temps (0.001 secondes, je présume), vous semblez avoir répondu à votre propre question sur la façon dont l'opération est coûteuse.

Quant à savoir si c'est aussi cher, je dirais que la meilleure réponse est en le comparant aux alternatives.

Une alternative, de la réponse à votre autre question SO, est de construire un nouvel objet. Vous devrez expérimenter pour voir si cette approche est plus rapide.

Votre extrait semble compliqué, et il semble être de « toma à smartsemantics dot com » à la page PHP. J'essaie de comprendre ce que votre $obj pourrait être, et un peu de contexte sur votre problème, pour voir s'il y a des alternatives qui ne concernent pas downcasting.

Probablement, downcasting est volontairement interdit en PHP pour dissuader les gens d'utiliser downcasting. C'est parce qu'une conception OOP qui l'exige est viciée selon le principe de substitution Liskov.

Autres conseils

Je ne pense pas que vous devriez vous inquiéter de la façon dont cela coûte cher, plutôt vous préoccuper du fait que vous essayez de mettre en œuvre des fonctionnalités de haut niveau dans un langage de programmation au niveau de l'application. Ce semble juste être une très mauvaise idée.

Si downcasting est que nécessaire dans votre application web, peut-être PHP est pas le meilleur choix pour elle. Je doute cependant sérieusement que downcasting est vraiment nécessaires, avec une meilleure conception que vous pouvez éviter d'utiliser tous ensemble.

scroll top