Portal > Foren > PHP > PHP-Programmierung > Funktion ähnlich array(); erstellen ?
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 28.05.2007, 13:07 Nach oben    #1
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.204
Standard Funktion ähnlich array(); erstellen ?

Ich wollte wissen ob es möglich ist, einer Funktion so wie beispielsweise array();
Parameter zu übergeben:
PHP-Code:
$array = array('key'=>'value'); 
mein Versuch mittels:

PHP-Code:
<?php
function test()
{
    
var_dump(func_get_args());
}
test('key'=>'value');
?>
Führt nur zu:
Parse error: parse error, unexpected T_DOUBLE_ARROW in test.php on line 6

mfg
robo47
robo47 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.05.2007, 14:18 Nach oben    #2
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Klar geht das, allerdings nicht so wie du denkst

Dynamische Parameter werden nur über deren Position definiert oder als kompletten String wie bei der URL übergeben.

Folgendes sollte gehen (ungetestet
PHP-Code:
<?php
function test()
{
    
var_dump(func_get_args());
}
test('key=value');
?>
Damit du dann aber an value rankommst, müsstest du in einer schleife alle Parameter durchlaufen und die Keys und Values einem Array zuweisen. Dann kannst du darauf normal zugreifen...

[nachtrag]
PHP-Code:
<?php
function test()
{
    foreach (
func_get_args() as $param) {
        
$arr split("="$param);
        
$newParam[$arr[0]] = $arr[1];
    }
    
//var_dump(func_get_args());
    
print_r($newParam);
}
test('key=value''muh=kuh');
?>
Ausgabe:
Code:
Array ( [key] => value [muh] => kuh )
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009

Geändert von WarrenFaith (28.05.2007 um 14:23 Uhr)
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.05.2007, 15:05 Nach oben    #3
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Nur ein kleiner haarespaltender Nachtrag: split() ist hier unnötig, lieber explode() benutzen, denn Split arbeitet mit regulären ausdrücken und ist von daher langsamer.

Dass bei Robo die Zuweisung mittels => nicht funktioniert liegt ganz einfach da dran, dass => ein von PHP festgelegtes Token ist (T_DOUBLE_ARROW) und von daher nur in einem bestimmen Kontext auftreten darf (nämlich beij zuweisen von Arraywerten).
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.05.2007, 15:11 Nach oben    #4
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.204
Standard

hmm okay,
dann werde ich es eh anders machen, mir hat das als syntax schön gefallen und ich wollte auf diesem weg einer methode parameter übergeben die intern dann als objekte gespeichert werden.
robo47 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.05.2007, 18:44 Nach oben    #5
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 550
Standard

Und warum nicht einfach so?
PHP-Code:
test(array('key'=>'value')); 
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.05.2007, 18:51 Nach oben    #6
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.204
Standard

doppelt gemoppelt
Ich will ja eigentlich Objekte und dann von allem was ich übergebe erst noch ein array erzeugen um dann in der methode das ganze in ein objekt umzuwandeln hielt ich für unnötig
robo47 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.05.2007, 10:52 Nach oben    #7
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 853
Standard

Kannst Schlüssel und Wert der einzelnen Paare ja auch jeweils als ein Parameter übergeben:
PHP-Code:
<?php
test
('foo'$foo'bar'42);
Aber schön ist das sicher nicht.

Der Konstruktor von ArrayIterator der SPL erwartet im Übrigen auch ein Array als erstes Argument:

http://www.php.net/~helly/php/ext/sp...f6685af75146da

Basti
Basti ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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 sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP] thumbnails erstellen - kleine Funktion Jann Hendrik Tutorials 2 16.01.2008 10:38
[SUCHE] Funktion erstellen Jan Gesuche 5 30.10.2006 10:09
[PHP] FTP-Funktionen in PHP nutzen MrNiceGuy Tutorials 0 24.05.2006 14:18
Array in Bezug auf ein anderes sortieren... code5 PHP-Programmierung 2 15.05.2006 15:56
Array erstellen Jan Datenbanken 5 01.04.2006 17:14


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45