ebiz-webhosting
- Ad -
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! Post your PHP questions here!

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.778
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: 680
fireweasel 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?
__________________
PHP-Code:
class Brick implements Throwable {
    
// ... 

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.778
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: 680
fireweasel 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.
__________________
PHP-Code:
class Brick implements Throwable {
    
// ... 

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.104
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.778
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.104
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: 2.925
combie befindet sich auf einem aufstrebenden Ast
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.104
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.778
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: 680
fireweasel 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.
__________________
PHP-Code:
class Brick implements Throwable {
    
// ... 

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.104
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.778
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

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:53 Uhr.