php.de

Zurück   php.de > php.de Intern > Off-Topic Diskussionen

Off-Topic Diskussionen Mach mal Pause vom Programmieren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.10.2007, 01:10  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard with() in php

hi,

ich ärgere mich schon manchmal, dass with() in php nicht vorhanden ist. in javascript benutz ich with() sehr gerne. in dem was ich bisher in php gecoded hab, wärs desöfteren schonmal praktisch gewesen. was meint ihr, soll mann das mal vorschlagen?

hier noch ein bsp:

normaler php code:

PHP-Code:

$class
=new class;
$class->tuwas();
$class->tumehr();
$class->tonochwas(); 
mit with()

PHP-Code:

$class
=new class;
with($class)
{
     
tuwas();
     
tumehr();
     
tunochwas();

ich finde das macht den code ne gute spur lesbarer, besonders wenn man tabs benutzt und jeder geschweiften klammer ne eigene linie gibt.
natürlich ists in php nicht besonders oft anwendbar, aber eigentlich müsste es besonderes wenn mans innerhalb ner klasse benutzt (mit $this) doch ziemlich bequem sein....

gruß
brian johnson ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 10.10.2007, 02:21  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Wenn es eh Methoden ohne return wert sind mach es doch so:

PHP-Code:
<?php 
class testClass
{

    public function 
tuWas()
    {
        
/*
        function code
        */
        
return $this;
    }
    public function 
tuMehr()
    {
        
/*
        function code
        */
        
return $this;
    }
    public function 
tuNochWas()
    {
        
/*
        function code
        */
        
return $this;
    }
}

$class = new testClass();
// wahlweise so: 
$class->tuWas()->tuMehr()->tuNochWas();
// oder etwas übersichtlicher so:
$class->tuWas()
      ->
tuMehr()
      ->
tuNochWas();

?>
So wird das beim Zendframework angewandt, nennt sich call chaining.
robo47 ist offline   Mit Zitat antworten
Alt 10.10.2007, 02:52  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$class->tuWas()->tuMehr()->tuNochWas(); 
das funktioniert nur, wenn tuwas() und tumehr() objecte zurückgeben, wie du ja selbst im code zeigst. außerdem wars ja nur ein beispiel. natürlich solls auch möglich sein return werte zu verarbeiten......
brian johnson ist offline   Mit Zitat antworten
Alt 10.10.2007, 10:18  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von robo47
call chaining
Humbug! Da is der Einsatz von with() 100x sinnvoller, wobei ich with() bei PHP bisher eigentlich noch nicht vermißt habe. Aber vorschlagen kannst du es allemal.
Zergling-new ist offline   Mit Zitat antworten
Alt 10.10.2007, 15:16  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

wenn ich die klassennamen und die Methoden Namen von ZendFrimework ansehe,
dann vermisse ich auch 'with'.
Ehrlich gesagt geht mir Operator '->' auch richtig auf den Geist, aber da lässt sich in php nichts mehr dagegen machen.
__________________
Slava
http://bituniverse.com
Slava ist offline   Mit Zitat antworten
Alt 10.10.2007, 15:55  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Slava
wenn ich die klassennamen und die Methoden Namen von ZendFrimework ansehe,
dann vermisse ich auch 'with'.
Ehrlich gesagt geht mir Operator '->' auch richtig auf den Geist, aber da lässt sich in php nichts mehr dagegen machen.
im gegensatz zu javascript mit dem . finde ich -> um einiges lesbarer. natürlich ists mehr arbeit....

http://news.php.net/php.internals/32721
brian johnson ist offline   Mit Zitat antworten
Alt 10.10.2007, 19:53  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

[OT]
also ich bin in Berührung mit folgenden Object Orientierten Sprachen gekommen:
c++,Java, C#, VB, ActionScript, Javascript, PHP, Pithon, Perl, Ruby.
von diesen sprachen sind PHP, Perl und Ruby mit dem '->' Operator belegt.
und der Preis für der schrecklichste Syntax hat von mir Ruby bekommen.
das ist natürlich alles Geschmacksache und ist auch davon abhängig, mit welcher Sprache man anfängt.
Da ich mit Java und C++ angefangen habe kann ich mich nicht wirklich an Operator '->' freuen und wenn ich Quellcode von Ruby ansehe, dann wird mir einfach schlecht.

ach so, bei C gibtes der orperator '->' der als Zeiger auf ein Element einer Struktur oder Union dient
da C++ aus C entstanden ist, könnte man auch bei C++ benutzen (muss man aber nicht, da in C++ Struckturs und Union kaum eine rolle mehr spielen)
[OT]
__________________
Slava
http://bituniverse.com
Slava ist offline   Mit Zitat antworten
Alt 12.10.2007, 22:11  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

was mich aber mehr als with() belastet, ist die Tatsache, dass PHP5 kein casting unterstützt. Ein object kann nicht auf seine basisclasse gekastet werden, sondern nur auf Array, String und Object.
Das ist wirklich voll bescheuert OOP ohne Grundlagen von Polimorfie weiter zu entwickeln.
__________________
Slava
http://bituniverse.com
Slava ist offline   Mit Zitat antworten
Alt 12.10.2007, 22:34  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Slava
was mich aber mehr als with() belastet, ist die Tatsache, dass PHP5 kein casting unterstützt. Ein object kann nicht auf seine basisclasse gekastet werden, sondern nur auf Array, String und Object.
Das ist wirklich voll bescheuert OOP ohne Grundlagen von Polimorfie weiter zu entwickeln.
ich nie mit oop sprache richtig gearbeitet....

was meinst du?
brian johnson ist offline   Mit Zitat antworten
Alt 12.10.2007, 23:05  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

c++, java, c# unterstützen casting.
beispiel:
PHP-Code:
class A{
function 
f(){ return 'A';}
}

class 
extends A{
function 
f(){ return 'B'; }
}

$a=new B;
//das geht in oben genannten sprachen, aber in PHP leider nicht
echo ((A)$a).f(); 
//an dieser stelle muss die funktion 'f' von classe A kommen, also die echo muss ein A ausgeben. 
also kann ich in PHP mein Object $a nur auf
(array)$a, (string)$a oder (object)$a
casten
und das ist mir zu wenig.
Ich will wie bei anderen Sprachen ein Object auf beliebige Basisclasen mit dem Cast-operator reduzieren können.
__________________
Slava
http://bituniverse.com
Slava ist offline   Mit Zitat antworten
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
[Erledigt] Was hört ihr grade? --- Der Thread Off-Topic Diskussionen 1769 23.08.2009 13:00
JavaScript/PHP: qooxdoo 0.7.1 - Teil 1 : Eine Einführung Zergling-new Tutorials 6 25.01.2008 10:41
unable to replace stderr with error_log Zergling-new Server, Hosting und Workstations 3 29.11.2007 14:49
php-file wird downgeloadet dws Server, Hosting und Workstations 10 19.04.2006 18:45
[Erledigt] Exim --- Mailserver empfängt keine Mails Server, Hosting und Workstations 4 23.12.2005 18:28
Einfach Datepicker gesucht Cyberbob_at_tot PHP Tipps 2007 5 14.11.2005 09:10
Training von neuronalen Netzen PHP Tipps 2005 5 28.09.2005 15:12
problems with trim PHP Tipps 2005-2 4 14.09.2005 23:17
Einfaches (!) Design with PHP bitte lesen !!! Beitragsarchiv 11 01.08.2005 19:33
libmysqlclient.so.10 is needed Datenbanken 11 20.06.2005 15:27
#1148 - The used command is not allowed with this MySQL vers Datenbanken 7 19.05.2005 09:27
Printer friendly version of a page with PHP CSS PHP Tipps 2005 7 05.03.2005 20:59
Problem mit Wasserzeichen auf Bildern pixelcut PHP-Fortgeschrittene 16 14.12.2004 02:36
[Erledigt] Localhost only with connection... Server, Hosting und Workstations 2 20.09.2004 20:35
T-Online vs Mail() PHP Tipps 2004 4 13.08.2004 15:11


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:19 Uhr.




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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.