2016-06-23 15 views
0

Ich lerne PHP und arbeite in Codeigniter. Ich habe das Gefühl, dass ich ähnliche Dinge immer wieder schreibe (Doppelarbeit), wenn ich Datenfelder mache und die Variablen deklariere, die ich für Funktionen brauche. HierGibt es eine Möglichkeit, Variablen in einem Array zu deklarieren?

ein Beispiel:

//MAKE ARRAY OF USER ANSWERS TO QUESTIONS 
    $dropdowndata = array 
    ( 'user_socialhour' => $this->input->post('socialhour'), 
     'user_socialpm' => $this->input->post('socialpm'), 
     'user_eventhour' => $this->input->post('eventhour'), 
     'user_eventpm' => $this->input->post('eventpm'); 

    //DECLARE THE VARIABLES I NEED FOR FUNCTIONS 
     $user_socialhour = $this->input->post('socialhour'); 
     $user_socialpm = $this->input->post('socialpm'); 
     $user_eventhour = $this->input->post('eventhour'); 
     $user_eventpm = $this->input->post('eventpm'); 

    $calculateddata = array 
    ('user_mornafteve' => $this->mornafteve($user_socialhour, >$user_socialpm), 'user_beforeafter' => $this->beforeafter($user_socialpm, >$user_eventpm, $user_socialhour, $user_eventhour)); 

ich nach einem Weg suchen, die Deklaration aller Variablen in der dropdowndata Array zu automatisieren. Ich suche nach etwas wie, für jeden Schlüssel deklarieren Sie die Variablen nach dem folgenden Muster.

Gibt es das?

Antwort

0

Ye,

foreach($dropdowndata as $key=>$value) { 
    $$key = $this->input->post(substr($key, 5)) 
} 

Aber nicht sicher, warum Sie diese als Variablen überhaupt brauchen ... warum nur nicht verwenden:

//MAKE ARRAY OF USER ANSWERS TO QUESTIONS 
    $dropdowndata = array( 
     'user_socialhour' => $this->input->post('socialhour'), 
     'user_socialpm' => $this->input->post('socialpm'), 
     'user_eventhour' => $this->input->post('eventhour'), 
     'user_eventpm' => $this->input->post('eventpm'); 

    $calculateddata = array(
     'user_mornafteve' => $this->mornafteve($dropdowndata['user_socialhour'], $dropdowndata['user_socialpm']), 
     'user_beforeafter' => $this->beforeafter($dropdowndata['user_socialpm'], $dropdowndata['user_eventpm'], $dropdowndata['user_socialhour'], $dropdowndata['user_eventhour'])); 
0

Ich bin nicht sicher, ob ich voll und ganz verstehen, was Sie wollen ... aber Sie können Array-Schlüssel in die lokalen Variablen drehen ...

$array = ['x' => 1, 'y' => 2]; 
extract($array); 
var_dump($x); 
var_dump($y); 

php test.php

int (1

)

int (2)

Ref: http://php.net/manual/en/function.extract.php

+0

Awesome, rchh, das ist es! Ich mag besonders die zweite Option, von der ich nicht wusste, dass sie möglich ist. Dies wird mir helfen, meinen Code enorm zu straffen .... Ich hatte das Gefühl, dass ich viel zu ausführlich darüber war. Ich habe diese Antwort als richtig markiert. Vielen Dank! – Cyclist

Verwandte Themen