Почему этот код не возвращает мне правильный текст?
// My function
function getActivitiesDatas($datas, $got, $to_find) {
foreach ($datas as $d) {
if (array_search($got, $d)) {
if (in_array($to_find, array_keys($d))) {
return trim($d[$to_find]);
}
}
}
}
// My array
$activitiesList = array(
array(
'dbTable' => "Outfitters",
'dbPrefix' => "OUT",
'fullName' => "F_ACTIVITY0001",
'rewriteName' => $R_ACTIVITY0001,
'sectionType' => "accommodation",
'activeSeasons' => "all",
'weatherDep' => "no"
)
);
// My function call
$R_ACTIVITY0001 = "outfitters";
echo getActivitiesDatas($activitiesList, "OUT", "rewriteName");
Моя проблема заключается в следующем: когда я вызываю свою функцию $rewriteName
, пусто, когда я пытаюсь вернуть параметры rewriteName
из моего массива.
Когда в моем массиве я пытаюсь заменить значение $R_ACTIVITY0001
на "R_ACTIVITY0001"
, он работает.
Зачем?
Благодарю.
Проблема заключается в порядке, вам нужно инициализировать $ R_ACTIVITY0001 перед инициализацией массива следующим образом:
$R_ACTIVITY0001 = "outfitters";
$activitiesList = array(
array(
'dbTable' => "Outfitters",
'dbPrefix' => "OUT",
'fullName' => "F_ACTIVITY0001",
'rewriteName' => $R_ACTIVITY0001,
'sectionType' => "accommodation",
'activeSeasons' => "all",
'weatherDep' => "no"
)
);
$R_ACTIVITY0001 = "outfitters";
$activitiesList = array(
array(
'dbTable' => "Outfitters",
'dbPrefix' => "OUT",
'fullName' => "F_ACTIVITY0001",
'rewriteName' => $R_ACTIVITY0001,
'sectionType' => "accommodation",
'activeSeasons' => "all",
'weatherDep' => "no"
)
);
Ваша переменная не инициализируется перед вашим массивом