php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.09.2007, 15:04  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard Funktion mehrere optionale Parameter

Hallo,

ich hab ein kleines Problemchen.

Ich hab folgende Funktion:

PHP-Code:

function test($var1$var2$var3 "wert3"$var4 "wert4"$var5 "wert5") {

[...]


Ich möchte diese Funktion jetzt aber aufrufen und beispielsweise nur $var1, $var2 und $var5 angeben, der Rest soll auf der ursprünglichen Definition beleiben.

Wenn ich die Funktion jetzt allerdings mit

PHP-Code:

test
("wert1""wert2", , , "wert5_neu"); 
aufrufen will, gibt es einen Fehler. Wie kann ich das machen, dass ich die Funktion so aufrufen kann, ohne die anderen Felder mit z.B. '' überschreiben zu müssen?

mfg
Link
GSJLink ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 27.09.2007, 15:07  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Kannst versuchen NULL zu übergeben, dann musst du innerhalb der Funktion aber auch auf !is_null() testen.

Da ist aber letztlich Quark. Wenn du mal das mal das angeben willst als Parameter, bietet sich ein Array mit übergebenen Optionen wohl eher an.
Zergling-new ist offline  
Alt 27.09.2007, 15:09  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard

Stimmt, ein Array wäre in dem Fall wirklich die beste Lösung.

Danke!

mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink ist offline  
Alt 27.09.2007, 16:50  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.248
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Ich finde die Lösung ohne Array nicht die schlechteste. Wenn's einen echten Mehrwert darstellt, ist
PHP-Code:
function test ($a$b NULL$c NULL)
  {
  
// Variable Parameter
  
if (NULL === $b$b 'Default2';
  if (
NULL === $c$c 'Default3';

  
// ...
  
}

test (
       
'abcdefg' 
       
NULL      ,
       
'Teststring'
       
); 
ein guter und übersichtlicher Workaround, statt alles in ein Array zu packen. Ist auch besser zu formatieren beim Funktionsaufruf. Schade, dass bei einer Angabe von NULL nicht automatisch der Vorgabewert verwendet wird. Das Problem läge dabei natürlich auf der Hand.
nikosch ist gerade online  
Alt 27.09.2007, 17:26  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Zitat:
Stimmt, ein Array wäre in dem Fall wirklich die beste Lösung.
Es gibt auch die Funktion func_get_args(), mit der man die Argumente einer Funktion holen kann, ohne dediziert in der Funktions-Deklaration Argumente angeben zu müssen. Die Funktion func_get_args() liefert dir ein Array der Parameter zurück und du musst dann entsprechend prüfen, was du davon verarbeiten möchtest. Nachteil ist, dass jeder der Funktion irgendwelche Argumente in irgend einer Reihenfolge übergeben kann.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 27.09.2007, 18:51  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von nikosch77
Schade, dass bei einer Angabe von NULL nicht automatisch der Vorgabewert verwendet wird.
Ja!
Zergling-new ist offline  
Alt 28.09.2007, 13:45  
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 Zergling
Zitat:
Zitat von nikosch77
Schade, dass bei einer Angabe von NULL nicht automatisch der Vorgabewert verwendet wird.
Ja!
und was ist wenn du wirklich mal NULL willst?

Code:
Es gibt auch die Funktion func_get_args(), mit der man die Argumente einer Funktion holen kann, ohne dediziert in der Funktions-Deklaration Argumente angeben zu müssen. Die Funktion func_get_args() liefert dir ein Array der Parameter zurück und du musst dann entsprechend prüfen, was du davon verarbeiten möchtest. Nachteil ist, dass jeder der Funktion irgendwelche Argumente in irgend einer Reihenfolge übergeben kann.
benutze ich gerne, wenn die übergebenen parameter verschiedene typen haben (müssen)....
brian johnson ist offline  
Alt 28.09.2007, 14:26  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Das ist doch kein Widerspruch, NULL ist "undefiniert", also genau was verwendet werden soll, wenn ich den Parameter nicht verwende.
Zergling-new ist offline  
Alt 28.09.2007, 17:22  
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 Zergling
Das ist doch kein Widerspruch, NULL ist "undefiniert", also genau was verwendet werden soll, wenn ich den Parameter nicht verwende.
genau, NULL kann auch heißen, dass du die vorgebene möglichkeit nicht nutzen willst (im gegensatz zu dem beispiel hier, wo bei NULL ein standardwert benutzt wird). würde php nun hingehen und einen vorgabewert bei NULL annehmen, ginge das nicht.
brian johnson ist offline  
Alt 28.09.2007, 17:50  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Natürlich ist es schön, den Default unabhängig von NULL gleich in der Funktionsdeklaration setzen zu können.

In den meisten Fällen die bei mir so aufkreuzen, setze ich den Default aber eh oft durch Klassen-Konstanten, eben im Fall, dass der Parameter nicht gültig (oder, das wird dadurch ja aber schon abgedeckt, NULL) ist.

So und jetzt hab ich vergessen worums eigentlich ging
Zergling-new ist offline  
 


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
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
gpc_quotes funktion: verbesserungsvorschläge? Promaetheus PHP Tipps 2007 10 12.08.2007 19:29
[Erledigt] optionale Parameter mit Funktion im Defaultwert PHP Tipps 2007 10 02.01.2007 21:42
Parameter überschreiben Igäl PHP Tipps 2006 8 04.06.2006 19:55
Variable als optionalen Parameter? Mex PHP Tipps 2006 3 20.04.2006 07:05
Parameter an eine bestehende Funktion übergeben. Daskaras HTML, Usability und Barrierefreiheit 6 29.11.2005 10:14
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
functionen - optionale Parameter PHP Tipps 2005 7 23.05.2005 19:08
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
[Erledigt] optionale uebergabeparameter in selbstdefinierter funktion PHP Tipps 2004 2 01.11.2004 15:04
[Erledigt] Parameter an eine funktion übergeben PHP Tipps 2004 9 18.08.2004 14:14
Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mehrere optionale parameter, mehrere optionale parameter php, http://www.php.de/php-tipps-2008/44832-funktion-mehrere-optionale-parameter.html, php funktion optionale parameter, php mehrerer optionale paraemter, php function mehrere optionale parameter, mehrere optionale parameter, php funktionsaufruf mehrere argumente, php funktionen optionale parameter, php function parameter optional funktioniert nicht, js function 2 parameter, php mehrere optionale paramter, php optional parameter, php function parameter vorgabewerte, php mehrer parameter, meherere optionale parameter php, php funktionsaufruf optionale parameter, funktionsaufruf unterschiedliche parameter, php überschreiben funktionen verschiedene paramter, php ein optional mehrere parameter übergeben

Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 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.