2016-11-28 113 views
2

我將只聲明一次數組。價值想要一次又一次地作爲關鍵別名來調用。請任何人都可以幫助我? 例如:PHP數組變量聲明爲別名

我:

<?php 
$id = $profile[0]->id; 
$roll = $profile[0]->roll; 
$photo = $profile[0]->photo; 
$active = $profile[0]->active; 
?> 

我neeed:

<?php 
$var as $profile[0]; 
$id = $var->id; 
$roll = $var->roll; 
$photo = $var->photo; 
$active = $var->active; 
?> 

它可以用foreach()來完成。但是,我想在Alias上工作。 我需要什麼好的想法..

回答

0

我想你可以試試這個

<?php 
    // this line you can try 
    $var = array(); 

    // your code 
    $var = $profile[0]; 
    $id = $var->id; 
    $roll = $var->roll; 
    $photo = $var->photo; 
    $active = $var->active; 
    ?> 
0
foreach($profile[0] as $key => $val) { 
    $$key = $val; 
} 
0

你可以使用list()結構用於此目的。

list($profile) = $profiles; 
$id = $profile->id; 
$roll = $profile->roll; 
$photo = $profile->photo; 
$active = $profile->active; 

可變$profile相當於$profiles[0]。所以,你可以堅持這樣做。

0

我不知道你在找什麼100%,但我覺得你references後,更具體地assign by reference

$profile = array(
    0 => (object)array(
     'id' => '314', 
     'roll' => 'XYZ', 
     'photo' => 'foo.jpg', 
     'active' => true, 
    ), 
); 

$var = &$profile[0]; 

$id = $var->id; 
$roll = $var->roll; 
$photo = $var->photo; 
$active = $var->active; 

var_dump($id, $roll, $photo, $active); 
string(3) "314" 
string(3) "XYZ" 
string(7) "foo.jpg" 
bool(true) 

現在$var是指向同一個對象,$profile[0],你可以通過兩種變量修改一個變量名:

$var->photo = 'flowers.gif'; 
var_dump($profile); 
array(1) { 
    [0]=> 
    &object(stdClass)#1 (4) { 
    ["id"]=> 
    string(3) "314" 
    ["roll"]=> 
    string(3) "XYZ" 
    ["photo"]=> 
    string(11) "flowers.gif" 
    ["active"]=> 
    bool(true) 
    } 
} 

當然,這一切都是一種矯枉過正,如果你實際上並不需要改變原來的數組,這就夠了:

$var = $profile[0];