Ich habe ein WordPress-Projekt geerbt und schreibe gerade ein Skript zum Exportieren von Datenbanktabellen im .csv-Format. Der ursprüngliche Designer speicherte viele benutzerdefinierte Informationen über jeden Benutzer in der wp_usermeta
Tisch. Leider waren viele dieser Informationen optional, und im Fall von optionalen NULL-Daten existiert die Zeile in der Datenbank einfach nicht. Ein Beispiel für Benutzer mit einem optionalen „Geschlecht“-Feld:
umeta_id user_id meta_key meta_value
1 1 gender 1
2 1 phone 5555555555
3 1 address "123 alphabet lane"
4 2 phone 5555551234
5 2 address "123 alphabet way"
6 3 gender 2
...
Ich kann keine fehlenden Felder mit einer CSV-Datei haben, oder die Formatierung würde seltsam aussehen, also muss ich die Informationen jedes Benutzers auf diese fehlenden Felder überprüfen und eine leere Zeichenfolge einfügen. Da ich über Zehntausende von Datenbankzeilen iterieren werde, war ich neugierig, welche Methode der Variablenzuweisung in Bezug auf Speicherverbrauch und Ausführungszeit dafür am effizientesten ist.
Methode 1
if (empty($fetched[$field]))
{
$data[$field] = '';
}
else
{
$data[$field] = $fetched[$field];
}
Methode 2
$data[$field] = '';
if (! empty($fetched[$field])
{
$data[$field] = $fetched[$field];
}
Methode 3
$data[$field] = empty($fetched[$field]) ? '' : $fetched[$field];
Oder sind sie alle nah genug dran, dass es wirklich keinen Unterschied macht? Vielen Dank im Voraus für jeden Einblick, den Sie anbieten können!
Sie sind alle konditionsbasiert, also denke ich, dass es keinen großen Unterschied in der Effizienz dieser Methoden gibt, daher würde ich die dritte Methode empfehlen – kurz, auf den Punkt und ohne Klammern.
– Ofir Baruch
30. August 2013 um 13:44 Uhr
Ich würde normalerweise den Bedingungsoperator verwenden, einfach für die Lesbarkeit. Ich kann mir vorstellen, dass es in Bezug auf die Leistung kaum Unterschiede gibt. Siehe Vergleichsoperatoren
– billyonecan
30. August 2013 um 13:45 Uhr
Fangen Sie nicht einmal an, über den “effizientesten Weg” nachzudenken, um etwas so Niedriges wie dieses zu tun. Das ist Mikrooptimierung und die Wurzel allen Übels. Wählen Sie die Methode aus, die Sie und andere Entwickler, die sich Ihren Code ansehen müssen, finden lesbar. Nur weil du sparen könntest
0.00000001
Sekunden verbringen Sie doppelt so viel Zeit damit, herauszufinden, was der Code tut, wenn alles mikrooptimiert ist.– h2oooooo
30. August 2013 um 13:49 Uhr