У меня есть данные, поступающие с двух разных страниц с использованием ассоциативных массивов, которые затем используются в другом файле. Я хотел бы использовать переменную вместо перезаписи функции дважды.

Первый файл извлекает данные как

 $data['property_subcategory'];

Второй файл выбирает те же данные, что и

 $row['property_subcategory'];

В настоящее время я использую следующие условия

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

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

Вместо этого я хотел бы использовать что-то вроде следующего

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

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

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

Я получаю сообщение об ошибке Array to string conversion

0
user8637919 19 Окт 2017 в 10:00

3 ответа

Лучший ответ

Если вы хотите придерживаться чего-то вроде этой идеи, почему бы просто не установить $variable равным нужному массиву ...

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

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

$title = $variable['property_subcategory'];
1
Nigel Ren 19 Окт 2017 в 07:40

Вот решение, которое, кажется, работает, основываясь на комментариях Гордона и Дооменика

$variable= "data";

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

Однако, если переменная должна использоваться в условии if / else, синтаксис изменяется следующим образом

if(${$variable}['property_subcategory'] == "Room")
0
Pichai 19 Окт 2017 в 07:20

Почему бы просто не скопировать или ссылаться на другое имя переменной?

<?php

if($currentseo == 'propertyfavorite') 
    $data = &$row;
1
Progrock 19 Окт 2017 в 07:52