2017-10-19 11 views
0

連想配列を使用して2つの異なるページからデータを取得し、別のファイルで使用しています。関数を2回書き直すのではなく、変数を使用したいと思います。連想配列で変数を使用する

最初のファイルは

$data['property_subcategory']; 

第二のファイルは現在、私は、以下の条件の代わりに、このの

if ($currentseo == 'propertysearchresults') 
{ 
    $title = $data['property_subcategory']; 
} 

if ($currentseo == 'propertyfavorite') 
{ 
    $title = $row['property_subcategory']; 
} 

を使用しています

$row['property_subcategory']; 

と同じデータをフェッチとデータをフェッチ私は次のようなものを使用したいと思っています

if ($currentseo == 'propertysearchresults') 
{ 
    $variable = "$data"; 
} 

if ($currentseo == 'propertyfavorite') 
{ 
    $variable = "$row"; 
} 

$title = $variable.['property_subcategory']; 

私は、変数がで使用されるしかし、場合ゴードンとDoomenik

$variable= "data"; 

$title = "$".$variable['property_subcategory']; 

によって与えられたコメントに基づいて動作しているようだソリューションをerrrorここArray to string conversion

+3

typo。 '$ title = $ variable。[; property_subcategory '];' – Gordon

+1

のドットを削除してください。最終的にこれはhttp://php.net/manual/en/language.variables.variable.phpに役立ちます – Doomenik

+0

正直言ってこの例では、あなたがすでに持っていたものに固執し、第2のバージョンは最初のバージョンと同じくらい明確ではありません。 –

答えて

1

このアイデアのようにしたい場合は、ただ単に別の変数名にコピーまたは参照ないのはなぜ

if ($currentseo == 'propertysearchresults') 
{ 
    $variable = $data; 
} 

elseif ($currentseo == 'propertyfavorite') 
{ 
    $variable = $row; 
} 

$title = $variable['property_subcategory']; 
0

をされて取得していますif/else条件が次のように変更されます

if(${$variable}['property_subcategory'] == "Room") 
+0

関数は変数宣言よりもかなり長いので(ここでは単純な関数しか与えられていません)、私のコードはかなり小さくなりDRYになります。 – Pichai

+1

これは恐ろしいです。 – Progrock

+0

@Progrock私は同意します。 – Pichai

1

...あなたが必要とする配列に等しい$variableを設定していませんか?

<?php 

if($currentseo == 'propertyfavorite') 
    $data = &$row;