php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.09.2009, 22:49   #1 (permalink)
Erfahrener Benutzer
 
Benutzerbild von Phoscur
 
Registriert seit: 01.12.2008
Beiträge: 452
PHP-Kenntnisse:
Fortgeschritten
Phoscur wird schon bald berühmt werdenPhoscur wird schon bald berühmt werden
Standard PHP 5.3 Datenstrukturen

@mod: Nach Bedarf in Offtopic verschieben, dachte mir könnte auch hier passen

PHP: Datastructures - Manual

Ich hab mir grad ein wenig die Neuerungen von PHP5.3 angesehn und bin auf diese Listen gestoßen. Ich fragte mich auch, ob es nicht eine OOP-Version von Arrays gibt. Gibt es: PHP: ArrayObject - Manual
Diese Klassen würden sich ja auch als Eltern für eigene Grupperiungen von Objekten eigenen, was haltet ihr davon? Gibt es irgendwelche Erfahrungen? Wie ist die Performance?
__________________
Phoscur ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.09.2009, 23:00   #2 (permalink)
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 21.160
PHP-Kenntnisse:
Fortgeschritten
nikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblick
Standard

Zitat:
Ich fragte mich auch, ob es nicht eine OOP-Version von Arrays gibt.
Ähm selbe Seite?! PHP: SplFixedArray - Manual

ArrayObject und Iterator sind schon was älter.

Zitat:
ArrayIterator::current

(PHP 5 >= 5.1.0)
Zitat:
ArrayObject::__construct

(PHP 5 >= 5.1.0)
Zitat:
ArrayAccess::offsetExists

(PHP 5 >= 5.1.0)
__________________
--
„Eins ist Fakt: Gescannt wird nackt!“

Privatsphäre 2.0 - Nacktscanner mit Eyetracking.
Unser Flugzeug darf kein geschlechtsfreier Raum sein.
--

Geändert von nikosch (22.09.2009 um 23:03 Uhr).
nikosch ist offline   Mit Zitat antworten
Alt 22.09.2009, 23:21   #3 (permalink)
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 544
PHP-Kenntnisse:
Fortgeschritten
mermshaus ist ein sehr geschätzer Menschmermshaus ist ein sehr geschätzer Menschmermshaus ist ein sehr geschätzer Mensch
Standard

Beim SplFixedArray behauptet einer in den Kommentaren, die seien schneller als normale PHP-Arrays. Ich weiß von den Iteratoren noch, dass sie extrem langsam sind (waren?), weil sie in PHP implementiert sind (again: waren?). Aber meine Informationen scheinen da auch nicht mehr so neu zu sein und die gerade verlinkte SPL-Doku wird im PHP-Handbuch als "legacy" angegeben.

Was mich gerade in seinen Bann zieht, ist das hier: PHP: SPL Types - Manual. "Objekt-Wrapper" für primitive Datentypen? Die Richtung gefällt mir.
mermshaus ist offline   Mit Zitat antworten
Alt 22.09.2009, 23:30   #4 (permalink)
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 21.160
PHP-Kenntnisse:
Fortgeschritten
nikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblick
Standard

Zitat:
"Objekt-Wrapper" für primitive Datentypen? Die Richtung gefällt mir.
Wobei Wrapper hier auch wie ein Synonym für Langsamkeit klingt.
__________________
--
„Eins ist Fakt: Gescannt wird nackt!“

Privatsphäre 2.0 - Nacktscanner mit Eyetracking.
Unser Flugzeug darf kein geschlechtsfreier Raum sein.
--
nikosch ist offline   Mit Zitat antworten
Alt 23.09.2009, 00:19   #5 (permalink)
Erfahrener Benutzer
 
Benutzerbild von Phoscur
 
Registriert seit: 01.12.2008
Beiträge: 452
PHP-Kenntnisse:
Fortgeschritten
Phoscur wird schon bald berühmt werdenPhoscur wird schon bald berühmt werden
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Ähm selbe Seite?! PHP: SplFixedArray - Manual

ArrayObject und Iterator sind schon was älter.
Danke!

Zitat:
Beim SplFixedArray behauptet einer in den Kommentaren, die seien schneller als normale PHP-Arrays. Ich weiß von den Iteratoren noch, dass sie extrem langsam sind (waren?), weil sie in PHP implementiert sind (again: waren?). Aber meine Informationen scheinen da auch nicht mehr so neu zu sein und die gerade verlinkte SPL-Doku wird im PHP-Handbuch als "legacy" angegeben.
Ah. Gut zu wissen.

Letztlich entscheide ich mich dann dafür. Muss mal sehen wie ich das genau angehe.
Gibt es für die StrongTypes da noch irgendwas, das man wissen könnte? Operatoroverloading gibt es ja noch nicht in PHP, daher seh ich da keinen Sinn, das zu verwenden.. ich mag eigentlich die dynamischen Typen von PHP...
__________________
Phoscur ist offline   Mit Zitat antworten
Alt 23.09.2009, 00:53   #6 (permalink)
Erfahrener Benutzer
 
Registriert seit: 17.07.2009
Beiträge: 114
PHP-Kenntnisse:
Anfänger
Tiberius befindet sich auf einem aufstrebenden Ast
Standard

Hatte vor kurzem Array mit SplFixedArray verglichen. SplFixedArray ist nicht nur schneller, es braucht auch deutlich weniger Speicher!

5000000 Schleife erstellen und dann mit isset() auf den letzten Eintrag prüfen

SplFixedArray in ca. 5 Sekunden mit 180 MB
Array in ca 14 Sekunden mit 400MB
Tiberius ist offline   Mit Zitat antworten
Alt 23.09.2009, 01:54   #7 (permalink)
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 21.160
PHP-Kenntnisse:
Fortgeschritten
nikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblick
Standard

Naja gut, ein nicht-dynamischer Index ist aber auch ein echter Nachteil
__________________
--
„Eins ist Fakt: Gescannt wird nackt!“

Privatsphäre 2.0 - Nacktscanner mit Eyetracking.
Unser Flugzeug darf kein geschlechtsfreier Raum sein.
--
nikosch ist offline   Mit Zitat antworten
Alt 23.09.2009, 04:11   #8 (permalink)
Erfahrener Benutzer
 
Benutzerbild von Phoscur
 
Registriert seit: 01.12.2008
Beiträge: 452
PHP-Kenntnisse:
Fortgeschritten
Phoscur wird schon bald berühmt werdenPhoscur wird schon bald berühmt werden
Standard

Mh.. also nach oben könnte man ihn ja recht leicht öffnen.
PHP-Code:
class DynamicSplArray extends SplFixedArray
{
    public function 
offsetSet  $index$newval )
    {
        if (
$index $this->getSize()) {
             
$this->setSize($index);
        }
        return 
parent::offsetSet($index$newval);
    }
    
// evtl. weitere Anpassungen

Damit könnte man das Array beliebig verlängern, wenn auch recht umständlich und ineffizient, trotzdem wäre es ein dynamisches Array
Die meisten Exceptions würden so übrigens immer noch gewollt auftreten (bei invalidem $index).

Bekommen wir eig. mit PHP bald ein zweites Java? Ich hab gehört mit PHP6 könnte return-Typehinting kommen. Interfaces und Klasses haben wir ja schon..
__________________
Phoscur ist offline   Mit Zitat antworten
Alt 23.09.2009, 08:55   #9 (permalink)
Erfahrener Benutzer
 
Registriert seit: 17.07.2009
Beiträge: 114
PHP-Kenntnisse:
Anfänger
Tiberius befindet sich auf einem aufstrebenden Ast
Standard

Die dynamische Erweiterung eines SplFixedArrays hatte ich auch getestet, lag bei doppelter Zeit eines normalen Arrays.

Es gibt immer mal Stellen an denen ich ein Array mit nicht-dynamischem Index gebrauchen kann, daher wollte ich wissen ob sich ein FixedArray auszahlt und machte den Vergleichstest. Ich finde es lohnt sich genauer abzuwägen ob man ein simples Array einsetzt oder es für den Zweck nicht auch einfach nur ein FixedArray tut
Tiberius ist offline   Mit Zitat antworten
Alt 23.09.2009, 16:13   #10 (permalink)
Erfahrener Benutzer
 
Benutzerbild von Phoscur
 
Registriert seit: 01.12.2008
Beiträge: 452
PHP-Kenntnisse:
Fortgeschritten
Phoscur wird schon bald berühmt werdenPhoscur wird schon bald berühmt werden
Standard

Würdet ihr dann für den Fall eines dynamischen Arrays ArrayObject verwenden? Ich finde das besser die Funktionen direkt auf das Array anwenden zu können. Ich meine ich mag die objektorientierte Schreibweise...
__________________
Phoscur ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten in XML oder INI speichern mAy^daY PHP Tipps 2007 9 27.02.2007 12:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php datenstrukturen, datenstrukturen php, php datenstruktur, php datenstukturen, datenstruktur php, php 5.3 oop, spltypes php nutzen, mit vbulletin php 5.3 lohnt sich, php größe von datenstruktur, php (object) array langsam, php5 datenstruktur, objektwrapper php, datenstruktur mit php anlegen, php array funktionen langsam, php array verlängern, php eigene datenstruktur, php fixed array, date klasse php 5.3, schnelle datenstrukturen php, datenstruktur anzeigen php

Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum