php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 06-04-2009, 11:26
rundmc
 Registrierter Benutzer
Links : Onlinestatus : rundmc ist offline
Registriert seit: Jul 2007
Beiträge: 36
rundmc ist zur Zeit noch ein unbeschriebenes Blatt
Standard Object ohne Klasse

Hallo Leute,

Ist es möglich ein Object ohne ein Klasse zu erstellen?

zb.:

PHP-Code:
$test = {'test1''test2'}

echo 
$test->test1 'hallo'
wäre sowas irgendwie möglich?

danke, mfg tom
Mit Zitat antworten
  #2 (permalink)  
Alt 06-04-2009, 11:31
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<?php
    $object
;
    
$object->hello 'world';
    
    
var_dump($object);

?>
Ist in Wirklichkeit aber, wie man sehen kann, eine Objektinstanz der PHP internen Klasse "stdClass".
Mit Zitat antworten
  #3 (permalink)  
Alt 06-04-2009, 12:00
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard Re: Object ohne Klasse

Zitat:
Original geschrieben von rundmc
Hallo Leute,

Ist es möglich ein Object ohne ein Klasse zu erstellen?
Was willst du damit erreichen?

Eine Klasse ist quasi die Bauanleitung für Objekte. Wie soll dir PHP ein Objekt "bauen", wenn es keine Anleitung dafür besitzt?
Mit Zitat antworten
  #4 (permalink)  
Alt 06-04-2009, 12:16
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Es gibt halt auch anonyme Objekte ... Ohne "Bauanleitung", weil nichts gebaut werden muss. Diese Objekte haben dann natürlich weder irgendwelche Methoden noch private oder protected Properties.
Mit Zitat antworten
  #5 (permalink)  
Alt 06-04-2009, 13:43
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von unset
Es gibt halt auch anonyme Objekte ... Ohne "Bauanleitung", weil nichts gebaut werden muss. Diese Objekte haben dann natürlich weder irgendwelche Methoden noch private oder protected Properties.
Und natürlich auch keinen Nutzen: Ein Objekt ohne Methoden und ohne Eigenschaften -- welchen konkreten Zweck könnte das schon erfüllen?

Auch "public properties" müssen (oder sollten) definiert werden.
Mit Zitat antworten
  #6 (permalink)  
Alt 06-04-2009, 13:57
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

In JavaScript oder ActionScript kann ich sowas ja noch nachvollziehen, aber für sowas gibt es in PHP assoziative Arrays.
Mit Zitat antworten
  #7 (permalink)  
Alt 06-04-2009, 14:27
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Naja, json_decode gibt per default auch ein anonymes Objekt zurück. Halte ich weder für unsauber noch für schlimm.
Mit Zitat antworten
  #8 (permalink)  
Alt 06-04-2009, 16:06
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Schlimm finde ich das auch nicht. Aber warum sollte man sowas per Hand erzeugen? Halte ich für weniger sinnvoll, wie in Sprachen, die nativ über keine Hashmap verfügen.
Mit Zitat antworten
  #9 (permalink)  
Alt 07-04-2009, 17:57
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

PHP-Code:
$test = (object) array('test1'=>'bli''test2'=>'bla');
$test->test1 'hallo';
echo 
$test->test1 '<br>';
echo 
$test->test2 '<br>'
mysql_fetch_object() macht auch nix anderes....
__________________
Wir werden alle sterben

Geändert von combie (07-04-2009 um 17:59 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 07-04-2009, 22:13
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

So langsam wissen wir, dass es geht ^^ Aber wieso sollte man das so wollen? Nur weil der Pfeil viel hübscher ist wie der Index-Zugriff? Ist der Zugriff schneller? Gib mir einen Grund...
Mit Zitat antworten
  #11 (permalink)  
Alt 07-04-2009, 22:23
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Wenn man schon objektorientiert Programmiert, kann man halt eben auch Objekte verwenden statt Arrays. Asoziatve Arrays sind sowieso so ein PHP-Luxus der in vielen anderen Sprachen gar nicht gegeben ist.
Mit Zitat antworten
  #12 (permalink)  
Alt 07-04-2009, 23:39
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von unset
[B]Wenn man schon objektorientiert Programmiert, kann man halt eben auch Objekte verwenden statt Arrays.
Eine sauber implementierte Array-Klasse wäre schon nicht schlecht. Aber das gilt ja auch für Strings in PHP -- und da kommt auch fast niemand auf die Idee, die eingebauten Strings durch eine objektorientierte Lösung zu ersetzen.

PHP-Code:
// Was sieht cooler aus?
strlen($string);
$string->size();
// letzteres würde auch die Unicode-Verrenkungen in PHP6 unnötig machen ... 
Zitat:
Asoziatve Arrays sind sowieso so ein PHP-Luxus der in vielen anderen Sprachen gar nicht gegeben ist.
Ja, und Objekte sind auch ein Luxus, der in vielen anderen Sprachen nicht gegeben ist -- man denke nur an C, Pascal, die meisten Assembler ...

Ernsthaft: Die meisten Scriptsprachen[1] kennen einen zusammengesetzen Datentyp, der mit PHP's Arrays (auch den assoziativen) konkurrieren kann.

Und im Gegensatz zu Objekt-Properties ist die Zeichenmenge in Array-Keys nicht auf "/[a-z][a-z0-9_]*/i" beschränkt.

--
[1] VBScript könnte da eine Ausnahme sein. Da gibts assoziative Arrays (glaube ich) nur über ein extra einzubindendes Objekt.
Mit Zitat antworten
  #13 (permalink)  
Alt 07-04-2009, 23:39
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Wenn man schon Objektorientiert programmiert, sollten solche Parameteranhäufungen auch korrekt in einer Klasse beschrieben werden. Oder wenigstens eine eigene Collection-Klasse, a la ArrayObject oder was eigenes. Aber ein anonymes Objekt zu verwenden, weil das ganze objektorientierte und nicht arrayorientierte Programmierung heißt, ist kein Argument.
Mit Zitat antworten
  #14 (permalink)  
Alt 08-04-2009, 03:44
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von fireweasel
Eine sauber implementierte Array-Klasse wäre schon nicht schlecht. Aber das gilt ja auch für Strings in PHP -- und da kommt auch fast niemand auf die Idee, die eingebauten Strings durch eine objektorientierte Lösung zu ersetzen.
Mit ArrayObject innerhalb der SPL gibt es eine sauber implementierte Array-Klasse in PHP.

Meinetwegen können wir das Pferd auch gerne von hinten aufsatteln: Was spricht gegen die Verwendung von anonymen Objekten? "Sollte man nicht weil [sonst geschieht das Ungeheure]" zählt hier doch genau so wenig als Argument.

Bei einem endlichen Haufen von (assoziativen) Daten, der ansonsten weder näher beschrieben werden muss und auch keine auf ihn anzuwendenen Operationen nötig macht, ist ein solches anonymes Objekt eben die Wahl, IMHO

Im Grunde habe ich meine abschließende Meinung dazu aber auch schon gebloggt: Da gibt es kein richtig oder falsch.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:06 Uhr.