Domanda

Questa domanda è legata a in PHP5

Quanto costa questo? Php downcasting soluzione alternativa?

E 'questo php downcasting soluzione troppo costosa?

Ho fatto eco microtimes e sembra che ci vuole come 0.001. Mi chiedo se potrebbe essere un problema in una grande foreach.

public static function to($obj) {

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

Soluzioni proposte nelle http://php.net/manual/ commenti en / language.types.type-juggling.php sono simili.

È stato utile?

Soluzione

Con la presentazione il tempo 0,001 (secondi, presumo), si sembrano aver risposto alla tua domanda su come costoso l'operazione è.

Quanto alla questione se questo è anche costoso, direi che è migliore risposta mettendola a confronto con le alternative.

Un'alternativa, dalla risposta alla vostra altra domanda SO, è quello di costruire un nuovo oggetto. Dovrete sperimentare per vedere se questo approccio è più veloce.

Il frammento sembra ingombrante, e sembra di essere da "toma a smartsemantics dot com" alla pagina PHP. Sto cercando di capire che cosa potrebbe essere la vostra $obj, e un po 'di contesto circa il tuo problema, per vedere se ci sono alternative che non comportano downcasting.

Probabilmente, downcasting è volutamente vietato in PHP per dissuadere le persone da utilizzare downcasting. Questo perché un design OOP che lo richiede è viziata in base al principio di sostituzione Liskov.

Altri suggerimenti

Io davvero non credo che si dovrebbe essere interessato con quanto costoso questo è, riguardano invece te stesso con il fatto che si sta cercando di implementare la funzionalità di alto livello in un linguaggio di programmazione a livello di applicazione. Questo sembra proprio come una pessima idea.

Se downcasting è che aveva bisogno all'interno dell'applicazione web, forse PHP non è la scelta migliore per esso. Io però seri dubbi che downcasting è davvero necessario, con una migliore progettazione si può evitare di utilizzare tutto insieme.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top