funktionen mehrere werte
carsten schlichting
- php
hallo
kann mir eventuell jemand bei php funktionen helfen?
bisher habe ich in meiner internetseite PHP_programmcode mit hilfe von weiteren php-scripten und include() eingebunden.
Jetzt wollte ich dies über Funktionen bewekstelligen aber habe festgestellen, das Funktionen immer nur einen wert zurückgeben können, oder arrays., was aber ein großer aufwand zu sein scheint oder vielmehr mich auf den gedanken bringt, das mein bisheriges system geeigneter ist.
meine theoretische von mir gewollte Funktionen müßte folgendermaßen lauten
function test($1_f,$2_f,$3_f) {
-programmcode-
return $1_f als $1
return $2_f als $2
return $3_f als $3
}
und dann aufgerufen durch ein
include(php-script mit der Funktion);
test($1, $2, $3);
in meinem bisherigen system kann ich immer ganz schnell den programmcode, der jetzt in einem extra script steht, aufrufen ohne alle variablen neu zuweisen zu müssen. Mit den Funktionen schein ich da ganz umdenken zu müssen.
Mich würde einfach interessieren, wie hier jemand drüber denkt, der mehr Erfahrung im Programmieren hat.
habt vielen dank für feedback
Euer carsten
Hallo carsten
function test($1_f,$2_f,$3_f) {
-programmcode-
return $1_f als $1
return $2_f als $2
return $3_f als $3}
Da is wirklich ein Array die beste Lösung !
Du könntest auch ein Objekt machen
Das wäre dann etwa so:
$obj->1_f = "bla";
$obj->2_f = "test";
$obj->3_f = "testing";
return $obj;
Oder du machst eine IMHO komische Funktion
function test($1_f, $2_f, $3_f) {
-programmcode-
global $1
global $2
global $3
return true;
}
Dann würde das danach funktionieren:
test($1, $2, $3);
Ist aber wirklich gewöhnungsbedürftigt !
-> Es kommen immer diese 3 Variablen raus !
--> IMHO sehr störend... aber es würde funktionieren
Hoffe ich konnte helfen
Hoffe ich konnte helfen
auf jeden fall--danke
--> IMHO sehr störend... aber es würde funktionieren
da weiß ich jetzt noch nicht genau, was du damit gemeint hast. ??
seh ich das, wenn ichs ausprobiere??
also danke nochmal
und grüße carsten
--> IMHO sehr störend... aber es würde funktionieren
da weiß ich jetzt noch nicht genau, was du damit gemeint hast. ??
seh ich das, wenn ichs ausprobiere??
Naja
Diese Funktion "globalisiert" 3 Variablen.
Die Variablen werden dann mit den Werten der Funktion überschrieben.
---> Wenn da was anderes drinn war, dann isses weg !
------> Klingelts ? ;-)
Aber du wirst es bestimmt merken...
Ich persönlich würde das wie gesagt ein Array oder sogar ein Objekt returnen
Ein Objekt halt, wenn die Daten eng zusammenhängen.
z.B. Eine Adresse :
class Adresse {
var $strasse = "";
var $hausnr = "";
var $ort = "";
var $plz = "";
var $postfach = 0;
function __construct($strasse, $hausnr, $ort, $plz, $postfach = NULL) {
$this->strasse = $strasse;
$this->hausnr = $hausnr;
$this->ort = $ort;
$this->plz = $plz;
$this->postfach = $postfach;
}
}
Wenn du PHP 5 hast, dann machst du anstatt "var $strasse = "";" :
public $strasse = "";
Das is dann Strict kompatibel ;)
So...
Am besten guggst du dir dann auch mal das PHP Manual dazu an:
PHP 4 => http://de2.php.net/manual/de/language.oop.php
PHP 5 => http://de2.php.net/manual/de/language.oop5.php
kleiner Tipp am rande
PHP 4 => http://de2.php.net/manual/de/language.oop.constructor.php
PHP 5 => http://de2.php.net/manual/de/language.oop5.decon.php
Und noch einer:
"new" mehr sog i net ;)
So ich glaube ich hab genug geholfen ...
Bis dann
Danke schön sag ich da.
hab mir das auch nochmal mit einem array und list angeschaut.
http://de3.php.net/manual/de/functions.returning-values.php
vielleicht ist das doch gar nicht so kompliziert, wie es anfänglich ausgesehen hatte. Das was ich bisher gemacht habe lasse ich mal so. aber ab jetzt steig ich dann mal in die Funktionen ein.
also vielen dank
für das halbe tutorial
carsten
Hi,
Mich würde einfach interessieren, wie hier jemand drüber denkt, der mehr Erfahrung im Programmieren hat.
Ich bevorzuge Arrays, aber mitunter sind Variablen-Referenzen einfach praktischer:
function test(&$f1,&$f2,&$f3) {
Deine ungültigen Variablennamen habe ich auch geändert, aber wichtig ist das & als Kennung für eine Referenz.
Gruß, Cybaer