Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung PHP

GELÖST

PHP Funktion mit meheren Rückgabewerten

Mitglied: mkrasselt1

mkrasselt1 (Level 1) - Jetzt verbinden

26.11.2009, aktualisiert 02.12.2009, 4878 Aufrufe, 10 Kommentare

Wie kann man mit einer Funktion mehr als einen Rückgabewert ausgeben ?

Hallo Leute,
ich hab ein Problem,
wie üblich wenn hier jemand was schreibt.
ich habe folgende Funktion geschrieben, in php:
01.
<?php 
02.
function benutzervariablen($user, $vorname, $nachname, $geschlecht, $geburtstag, $wohnort, $bundesland, $userbild){ 
03.
      $userdatei = fopen("./Benutzerdateien/$user/informationen.txt","r"); 
04.
      while(!feof($userdatei)) 
05.
06.
            $zeilemitinfos = fgets($userdatei); 
07.
            $infoarray = explode(":::", $zeilemitinfos); 
08.
            $vorname = $infoarray[0]; 
09.
            $nachname = $infoarray[1]; 
10.
            $geschlecht = $infoarray[2]; 
11.
            $geburtstag = $infoarray[3]; 
12.
            $wohnort = $infoarray[4]; 
13.
            $bundesland = $infoarray[5]; 
14.
            $userbild = $infoarray[6]; 
15.
16.
        //* Einstellung für Benutzer ohne Bild *//   
17.
          if ($userbild == ''){ 
18.
          if($geschlecht == 'm&auml;nnlich'){ 
19.
            $userbild = 'profilbild_standart_m.jpg'; 
20.
21.
          if($geschlecht == 'weiblich'){ 
22.
            $userbild = 'profilbild_standart_w.jpg'; 
23.
24.
25.
return $user, $vorname, $nachname, $geschlecht, $geburtstag, $wohnort, $bundesland, $userbild
26.
27.
?>
so nun hab ich doch aber das Problem,
wie ich beim auslesend er Variablen die einzelen Variablen abrufen kann?
muss man das etwas o machen?
01.
<?php 
02.
$vorname = benutzervariablen($user, $vorname, $nachname, $geschlecht, $geburtstag, $wohnort, $bundesland, $userbild)['1']; 
03.
?>
oder wie sonst.
Im i-Net finde ich dazu nähmlich nichts

mkrasselt1
Mitglied: kugelschreiber
26.11.2009 um 20:36 Uhr
Hallo mkrasselt1,

pack die Daten in ein Array und gib das per return zurück.
Sollte funktionieren.

Gruß Kuli...
Bitte warten ..
Mitglied: kugelschreiber
26.11.2009 um 20:40 Uhr
01.
<? 
02.
function test(){ 
03.
	$foo = "foo"
04.
	$bar = "bar"
05.
	$array = array(); 
06.
	array_push($array,$foo); 
07.
	array_push($array,$bar); 
08.
	return $array
09.
10.
 
11.
$inhalt = test(); 
12.
print_r($inhalt); 
13.
?>
Bitte warten ..
Mitglied: mkrasselt1
26.11.2009 um 20:42 Uhr
danke werde ich gleich ausproieren
Bitte warten ..
Mitglied: nxclass
26.11.2009 um 21:15 Uhr
01.
<?php 
02.
function benutzervariablen(&$user, &$vorname, &$nachname, &$geschlecht, &$geburtstag, &$wohnort, &$bundesland, &$userbild) 
03.
04.
    $userdatei = fopen("./Benutzerdateien/$user/informationen.txt","r"); 
05.
    while(!feof($userdatei)) { 
06.
        $zeilemitinfos = fgets($userdatei); 
07.
        $infoarray = explode(":::", $zeilemitinfos); 
08.
        $vorname = $infoarray[0]; 
09.
        $nachname = $infoarray[1]; 
10.
        $geschlecht = $infoarray[2]; 
11.
        $geburtstag = $infoarray[3]; 
12.
        $wohnort = $infoarray[4]; 
13.
        $bundesland = $infoarray[5]; 
14.
        $userbild = $infoarray[6]; 
15.
16.
    /* Einstellung für Benutzer ohne Bild */ 
17.
    if ($userbild == '') { 
18.
        if ($geschlecht == 'm&auml;nnlich') { 
19.
            $userbild = 'profilbild_standart_m.jpg'; 
20.
21.
        if ($geschlecht == 'weiblich') { 
22.
            $userbild = 'profilbild_standart_w.jpg'; 
23.
24.
25.
    return true; 
26.
27.
?>
... sonnst sag ich mal nix dazu.
Bitte warten ..
Mitglied: kugelschreiber
26.11.2009 um 21:27 Uhr
Referenzierte Variablen wollte ich "ihm" nicht antun. Ansonsten natürlich die bessere Variante!
Bitte warten ..
Mitglied: haihappen18
26.11.2009 um 21:34 Uhr
Zitat von nxclass:

$userbild = 'profilbild_standart_m.jpg';
}
if ($geschlecht == 'weiblich') {
$userbild = 'profilbild_standart_w.jpg';

<ot>Das kann doch garnicht funktionieren, wenn man Standard mit "t" schreibt!</ot>
Sorry, ich konnts mir beim besten Willen nicht verkneifen :D
Bitte warten ..
Mitglied: mkrasselt1
27.11.2009 um 15:58 Uhr
nun danke für eure lösungen,
ich hab mich für die variante mit dem array entschieden,
und für die dies ganz genau nehmen, durchgezogene rechtschreibfehler sind nicht
von bedeutung, solange mann sie überall verwendet.


Und was sind bitte Referenzierte variablen ?


mkrasselt1
Bitte warten ..
Mitglied: Biber
27.11.2009 um 17:10 Uhr
Moin mkrasselt1,
<OT>
Und was sind bitte Referenzierte variablen ?
Ist nichts, was man/frau als HobbyprogrammiererIn unbedingt braucht.

Dabei wird eine Variable per Referenz an ein Unterprogramm/eine Funktion übergeben und dort der Inhalt/Wert der Variablen verändert.
Nur der zur Verfügung stehende Speicherplatz und zumindest bei ernstzunehmenden Programmierwerkzeugen auch der zulässige Datentyp der Variablen ist also vorher vorgegeben.

Diese Art der Programmierung macht jeden noch so kurzen Codeschnipsel fehleranfällig und schwer wartbar, weil du z.B bei diesem Konstrukt:
01.
... 
02.
function benutzervariablen(&$user, &$vorname, &$nachname, &$geschlecht, &$geburtstag, &$wohnort, &$bundesland, &$userbild) 
03.
...
... wo ja referenzierte Variablen verwendet werden, diese zwar hier "in der Funktion" unter den Variablennamen $user, $vorname etc ansprechen kannst, diese aber anderswo im Sourcecode ganz anders heißen können.

Würde eine "Globale Variable" $gbl_user dagegen irgendwo in einer von 200000 Sourcecode-Zeilen angefasst/geändert werden, hättest du mit jedem noch so billigen Textsearch eine Chance, diese Stellen zu finden.

Bitte nimm es einfach hin, dass so etwas existiert, dass es Menschen gibt, die es mögen und verwenden und dass es bei "großen" zu ändernden Variableninhalten massiven Geschwindigkeitsvorteil zu Lasten der der Pfleg- und Wartbarkeit hat.

Bei deinen 10-Byte-Variablen $user, $vorname etc. ist es absolut unnötig.

Grüße
Biber

P.S. "durchgezogene rechtschreibfehler sind nicht von bedeutung"
---> Wir verwenden genau aus diesem Grund meistens keine durchgezogenen, sondern durchgestrichene Rechtschreibfehler.
---> Noch lieber glattgezogene Rechtschreibfehler (s.FAQ, "Wie kann ich einen Beitrag bearbeiten?")

</OT>
Bitte warten ..
Mitglied: mkrasselt1
27.11.2009 um 17:17 Uhr
ok, war nur interessant für den fall,
das ich sowas mal benötigen sollte, und wenn es etwas hilfreiches gewesen wäre,
und etwas einfaches, dann hätte ich jetzt vieleicht neue ideen, was ich noch machen könnte.


mkrasselt1
Bitte warten ..
Mitglied: nxclass
27.11.2009 um 22:05 Uhr
anderer Ansatz: mit Objekten arbeiten
01.
class user 
02.
03.
    public static $username = null; 
04.
     
05.
    public static function benutzervariablen() 
06.
07.
        self::$username = 'Mustermann';  
08.
09.
10.
 
11.
// ... 
12.
 
13.
user::benutzervariablen(); 
14.
echo user::$username;
... oder so ähnlich.
Bitte warten ..
Ähnliche Inhalte
Visual Studio
Rückgabewerte von Funktionen
Frage von MarcoBornVisual Studio9 Kommentare

Hallo Forum, ich schreibe gerade in VB.NET eine Funktion, die als Rückgabewert einen Double-Wert zurückliefert. Wenn jedoch vom Nutzer ...

Python
Rückgabewert von MySQL-Funktion
gelöst Frage von NativeModePython4 Kommentare

Hallo, ich habe für eine mySQL-Abfrage eine eigene Funktion erstellt und abgespeichert: Soweit so gut, das funktioniert wenn ich ...

PHP
PHP Funktionen
Frage von tobmesPHP3 Kommentare

Hi, ich bin es mal wieder ;) Ich habe jetzt glaube ich ein kleines Verständnisproblem mit Funktionen und Rückgabewerten ...

PHP
Mysqli in eigenen PHP Funktionen
gelöst Frage von BuddersPHP4 Kommentare

Halli Hallo liebe Administratoren, schon mal Vorweg: ich habe mich die letzten Wochen dran gemacht mich mit PHP zu ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 4 StundenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 22 StundenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 23 StundenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
gelöst Frage von Windows10GegnerNetzwerkgrundlagen21 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit18 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...