Я пытаюсь исправить мой старый веб-сайт, который в настоящее время не работает. Я сократил проблему до следующего кода:
<?php
global $options;
foreach ( $options as $value ) {
if ( isset( $value['id'] ) ) {
var_dump($value);
$test = $value['id'];
if ( get_option( $value['id'] ) === FALSE ) {
$$value['id'] = $value['std'];
} else {
$$value['id'] = get_option( $value['id'] );
}
var_dump($$value['id']); // returns "Boxed"
var_dump($$test); // return NULL
break;
}
}
?>
var_dump переменной $ value:
array(6) { ["name"]=> string(10) "Theme Type" ["desc"]=> string(29) "Select the type of the theme." ["id"]=> string(10) "celta_type" ["type"]=> string(6) "select" ["options"]=> array(2) { [0]=> string(5) "Boxed" [1]=> string(9) "Stretched" } ["std"]=> string(5) "Boxed" } string(5) "Boxed" NULL array(6) { ["name"]=> string(10) "Theme Type" ["desc"]=> string(29) "Select the type of the theme." ["id"]=> string(10) "celta_type" ["type"]=> string(6) "select" ["options"]=> array(2) { [0]=> string(5) "Boxed" [1]=> string(9) "Stretched" }
Что я не понимаю, это следующее: как это возможно, что выходное значение $$ ['id'] работает, но если сначала присвоить значение $ test = $ value ['id'], тест $$ не будет работать.
Старый веб-сайт был на очень старой PHP версии (<5.3), возможно, что-то изменилось в более новых PHP ревизиях? </p>
спасибо за точку в правильном направлении