php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.06.2005, 13:26  
Erfahrener Benutzer
 
Registriert seit: 06.09.2004
Beiträge: 188
web2
Standard funktion problem

Hallo zusammen,
ich habe mal eine Frage kann man bei funktionen argumente weglassen obwohl diese im prototyp definiert wurden?

bsp:

PHP-Code:
<?php
function func_test($arg1,$arg2,$arg3){

     
//code

}

//aufruf der funktion

func_test(1, ,1)

?>
ist es moglich das zweite argument wegzulassen und in der funktion selber den wert dem fehlenden argument zuweisen

mit z.b.
PHP-Code:
<?php
if (!isset($arg2)){
     
$arg2 1;
}
?>

ich hoffe das ihr meiner problembeschreibung folgen konntet und bedanke mich schonmal im voraus für jeden beitrag.
__________________
Es gibt 10 Wege Binärcode zu verstehen. Ganz oder garnicht
web2 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 24.06.2005, 13:29  
Erfahrener Benutzer
 
Registriert seit: 27.10.2003
Beiträge: 530
Thice
Standard

ja, du kannst Parameter weglassen. Wenn diese an letzter Stelle stehen geht das so
PHP-Code:
<?php
function test($arg1$arg2 false$arg3 false) {

}

test("hallo");
?>
Wenn ein Parameter weg gelassen wird, wird der Standardwert verwendet.

MfG
Andy
__________________
kintzebros.de | KintzeBros Home Entertainment
2061. Nach dem Frieden | kurzfilm
Paula | spielfilm
Thice ist offline  
Alt 24.06.2005, 13:31  
Erfahrener Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 1.093
PHP-Kenntnisse:
Fortgeschritten
Chr!s
Standard

PHP-Code:
<?php
function funktion($var1=''$var2=''$var3='') {
        
// code...
}

funktion ('x''y');
?>
So gehts, so meckert er nicht wenn du $var 3 bei deinem Fukntions aufruf nicht setzt..
Was allerdings nicht geht:
PHP-Code:
<?php
funktion 
('x''y');
/* Wenn du hier $var1 und $var3 füllen willst wird das nix.. Du musst die Reihenfolge  der Variablen, die du vorgibst genau beachten.
*/
Chr!s ist offline  
Alt 24.06.2005, 13:33  
Erfahrener Benutzer
 
Registriert seit: 06.09.2004
Beiträge: 188
web2
Standard

heißt das jetzt dsa diese argumente optional sind und ich mit einer ifabfrage nach diesem argument den wert innerhalb der funktion setzten kann?


?>
PHP-Code:
<?php
<?php
if ($arg2 == false){
     
$arg2 1;
}
?>
oder bringe ich da jetzt etwas durch einander?
__________________
Es gibt 10 Wege Binärcode zu verstehen. Ganz oder garnicht
web2 ist offline  
Alt 24.06.2005, 13:37  
Erfahrener Benutzer
 
Registriert seit: 06.09.2004
Beiträge: 188
web2
Standard

Sorry für den doppelpost aber anhand des originalen beispieles lässt es sich vielleicht besser darstellen:

PHP-Code:
<?php
 
function balken_diagramm($anzahl,$farbe,$balken_hoehe,$balken_breite){
     
    
    if (!isset(
$balken_hoehe)) {
        
$balken_hoehe 10;
    }
    if (!isset(
$balken_breite)) {
        
$balken_breite 2;
    }
    
    
$color = array("rot""gelb""gruen""blau""schwarz"); 
  
     for (
$i=1;$i<=$anzahl;$i++){
        echo (
"<img src=\"images/balken/balken_"$color[$farbe] .".JPG\" height=\"$balken_hoehe\" width=\"$balken_breite\" border=\"0\" />");
    }
 
 }
 
 
balken_diagramm(100,0, , );
?>
so das soll eine funktion sein die einfach balken generiert. die höhe und breite soll auch einstellbar sein nur bei nicht eingabe sollen die default werte wie im code sichtbar verwendet werden
__________________
Es gibt 10 Wege Binärcode zu verstehen. Ganz oder garnicht
web2 ist offline  
Alt 24.06.2005, 13:42  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hat man mehrere Übergabeparameter und kann es sein, das diese teilweise nicht gefüllt sind, so besteht die Gefahr, die gerade schon angesprochen wurde.

Die Parameter werden der Reihe nach gefüllt. Werden einer Funktion mit drei Parametern in der Signatur nur zwei übergeben, so werden die ersten beiden Parameter gefüllt. Der letzte erhält den Standardwert, auch wenn er eigentlich korrekt gefüllt wurde.

Alternativ kann man mit einem assoziativen Array arbeiten.
Ein kleines Beispiel dazu:
PHP-Code:
<?php

    
function demo($_data = array('a' => 1,
                                 
'b' => 2,
                                 
'c' => 3,
                                 
'd' => 4)) {
                                                                      
        echo 
'<pre>';
        
print_r($_data);
        echo 
'</pre>';
        
        
$_data['a'] = 2;    
    }
    
    
    
$_array = array('a' => 'hallo',
                    
'b' => 'das ist',
                    
//'c' => 'ein',
                    
'd' => 'test');
                    
    
demo($_array);    
    
demo();

?>
Eine Ersetzung findet nur statt, wenn kein Array übergeben wird.
Wie man das geschickt machen kann, dass auch die einzelnen Arrayelemente überprüft und gegebenenfalls gesetzt werden hatte ich mal irgendwo gesehen, aber ich komm einfach nicht mehr drauf, wo das war ..

Deshalb schließe ich einfach mal die Frage an.
Wie könnte man das machen?

Grüße Ben.
imported_Ben 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
[Erledigt] Problem mit ereg Funktion! Horvi PHP Tipps 2008 7 20.05.2008 14:29
Problem beim Aufruf einer Funktion elwood PHP Tipps 2008 6 30.08.2007 12:54
Problem mit Funktion Kein Genie PHP Tipps 2007 33 12.03.2007 15:10
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
[Erledigt] Problem mit Backslash Patrick Schwarz PHP Tipps 2005-2 5 26.07.2005 09:54
Problem mit PFad Firefox - Verzeichnis löschen PHP Tipps 2005-2 0 19.07.2005 16:05
Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
problem mit der "die" funktion aircrash PHP Tipps 2005 2 08.01.2005 19:44
Problem mit Umsetzung einer Funktion Datenbanken 1 20.12.2004 14:37
problem mit update funktion aircrash PHP Tipps 2004-2 3 17.11.2004 16:55
Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51
Problem mit Funktion PHP Tipps 2004 3 17.07.2004 14:30
Problem mit mail() - Funktion PHP Tipps 2004 2 06.07.2004 18:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php funktion argumente auslassen, php5 funktion argumente auslassen, php funktion parameter weglassen, php funktion in funktion problem, array[] wird nicht gefüllt php, php function zwei paramter nur einer gefüllt, php funktionen parameter weglassen

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