php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.07.2008, 12:36  
Neuer Benutzer
 
Registriert seit: 02.07.2008
Beiträge: 5
dudi befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] OOP mit PHP 5, Methode kann nicht innerhalb der class ausgeführt werden

Hallo,

in den untenstehnden PHP-Script kann ich die Methode "funPrintAllgemeineDaten()" nur extern ausführen. Wenn ich die Methode ($this->funPrintAllgemeineDaten() innerhab der Klasse ausführe, erhalte ich diese Fehlermeldung:
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\Programme\xampp\htdocs\unit_class_2.php on line 20

PHP-Code:
<?php
    
class clKraftfahrzeuge
        
{
            protected 
$arrAllgemeineDaten;
            
            function 
__construct($ps$MaxKmh$NutzlastInTonnen)
                {
                    
$this->arrAllgemeineDaten["PS"] = $ps;
                    
$this->arrAllgemeineDaten["MaxKmh"] = $MaxKmh;
                    
$this->arrAllgemeineDaten["NutzlastInTonnen"] = $NutzlastInTonnen;
                }    
                
            function 
funPrintAllgemeineDaten()
                {
                    foreach (
$this->arrAllgemeineDaten as $key=>$val)    
                        {
                            echo 
$key ": " $this->arrAllgemeineDaten[$key] . "<br>";
                        }
                }
            
// $this->funPrintAllgemeineDaten();
            
        
}
    
$test = new clKraftfahrzeuge(447820);
     
$test->funPrintAllgemeineDaten();
?>
Da ich die Objektvariable innerhalb der Klasse mit $this ersetzt habe, sollte es doch laufen, oder?
dudi ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.07.2008, 12:48  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Die Zeile mit $this->fun.... steht ausserhalb der Methodendeklaration.
Code:
function ..()
{
}
$this->methodcall(); // <- Fehler
Wenn Du mir einen Gefallen tun willst, benutze bitte keinen deutsch-englischen Mischmasch in den Bezeichnern. Und was bedeutet das Prefix "fun"?
David ist offline  
Alt 03.07.2008, 13:06  
Neuer Benutzer
 
Registriert seit: 02.07.2008
Beiträge: 5
dudi befindet sich auf einem aufstrebenden Ast
Standard

David: Dank für deine schnelle Antwort. Das Prefix "fun" setze ich vor Funktionen. Jetzt habe ich es verstanden: eine Methode kann nicht von der Klasse selbst ausgeführt werden, sondern nur von einer anderen Methode.
dudi ist offline  
Alt 03.07.2008, 13:18  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Ich möchte von "fun" abraten. Das kleingeschriebene Verb am Anfang (print) enthält (oder kann enthalten) bereits die Information "Methode/Funktion".
Insgesamt finde ich ungarische Notation, bei der nur der nackte allgemeine Typ aber nicht die Bedeutung codiert wird, für überflüssig, manchmal sogar störend - auch bei schwach typisierten Sprachen wie php.
David ist offline  
Alt 03.07.2008, 14:08  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Außerdem handelt es sich innerhalb von Klassen genau genommen um Methoden. Das heißt, Du müßtest dann fun mit met (Wortwitz verstanden ? ) ersetzen.
Auch wenn ich an sich Fan der ungarischen für Variablennamen bin - ist das Prefix wirklich überflüssig. Allenfalls für Dopplungen und Seiteneffekte mit Fremdsoftware bietet sich sowas an - hier würde ich aber eher zu einem Prefix des Frameworks (oder der Funktionssammlung) raten.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 03.07.2008, 19:03  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von nikosch77-new Beitrag anzeigen
Auch wenn ich an sich Fan der ungarischen für Variablennamen bin
Ich auch. Aber in der ursprünglichen Form, so wie Charles Simonyi sich das gedacht hat Also nicht sowas wie lCount oder oUsr sondern zum Beispiel cbInputbuffer. Also eine funktionale, semantische Auszeichnug und nicht etwas, worum sich in stark typisierten Sprachen eh Compiler oder IDE kümmern sollten.
David ist offline  
Alt 04.07.2008, 00:02  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
worum sich in stark typisierten Sprachen eh Compiler oder IDE kümmern sollten.
Da kann man in PHP schon mal schwach werden finde ich...
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


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] GET methode - php skript in &amp;amp;lt;div Block&amp;amp;gt; einbinden Moritz PHP Tipps 2008 4 23.06.2008 14:12
[Erledigt] Zählen innerhalb der WHILE-Schleife PhilCGN PHP Tipps 2008 18 14.04.2008 09:17
[Erledigt] Auswertung von Funktionen innerhalb von Strings PHP Tipps 2006 5 30.01.2006 14:03
[Erledigt] Per POST Methode Text mit "</textarea> PHP Tipps 2005-2 3 25.10.2005 14:46
[Erledigt] Probleme mit SESSIONS innerhalb einer METHODE PHP-Fortgeschrittene 0 26.09.2004 16:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
parse error: syntax error, unexpected t_variable, expecting t_function, syntax error, unexpected t_variable, expecting t_function, parse error: syntax error, unexpected t_variable, expecting t_function in, unexpected t_variable, expecting t_function, \unexpected t_variable, expecting t_function\, syntax error, unexpected t_variable, expecting t_function in, parse error syntax error unexpected t_variable expecting t_function, t_variable, expecting t_function, unexpected t_variable expecting t_function, php parse error: syntax error, unexpected t_variable, expecting t_function, yntax error, unexpected t_variable, expecting t_function, syntax error unexpected t_variable expecting t_function, \parse error: syntax error, unexpected t_variable, expecting t_function\, unexpected t_include, expecting t_function, unexpected t_variable, expecting t_function in, http://www.php.de/php-tipps-2008/1932-erledigt-oop-mit-php-5-methode-kann-nicht-innerhalb-der-class-ausgefuehrt-werden.html, \syntax error, unexpected t_variable, expecting t_function\, parse error: syntax error, unexpected t_function, expecting t_variable in, parse error: syntax error, unexpected t_function, expecting t_variable, \syntax error, unexpected t_variable, expecting t_function in\

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:53 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