PHP передает переменную в переменную - PullRequest
0 голосов
/ 24 сентября 2019

Я поставил другую тему о переменных переменных.Я ответил, но его код не работает.Я попросил его уточнить, и он никогда не ответил.Итак, я публикую следующий вопрос.

У меня есть код ниже.Когда я помещаю динамический $ ct в код, он терпит неудачу и говорит неопределенную переменную.Но когда я удаляю $ ct, все работает нормально.Кто-нибудь объяснит, как я могу добавить переменную $ ct в конец моей переменной, чтобы у меня были динамические переменные?

$ct = 1;
${"var".$ct} = "String";
echo  $var1;  

Вышеприведенный сбой.

$ct = 1;
${"var"} = "String";
echo $var1;

Это прекрасно работает .

Так что что-то не работает с добавлением динамического $ct.

Он сказал, что должно работать нормально.Я также попытался $$ с помощью переменной, затем установил эту переменную и все равно не смог.

///////// Edit

, поэтому мой код выглядит так:

$ct=1;
foreach ($Emp1 as $e){
    if ($e['Status']!="Primary"){



     ${"B1_E1_Info$ct"} = $e['Employer_Name']." ".$e['Address_Unit']." ".$e['City']." ".$e['State']." ".$e['Zip'];
     $B1_E1_SE.$ct  = (strpos($e['Self_Employed'], "| Y") !== false) ? true : false;
     $B1_E1_YrsOn.$ct  = $e['Years_on_Job'];
     $B1_E1_YrsIn.$ct  = $e['Years_in_Line_of_Work'];
     $B1_E1_Pos.$ct  = $e['Position_Title'];
     $B1_E1_Ph.$ct  = $e['Business_Phone'];
    }
    $ct= $ct+1;

}
 echo  $B1_E1_Info1;

При вызове iside цикл не работает.Если я возьму это из цикла, это работает.Аналогично, если я изменю код внутри цикла, чтобы он не включал $ ct, он также работает.$ Ct просто не работает в цикле.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Уф !!!Спасибо Amigojacks.Также я понял мою ошибку.Я вызывал $ ct = $ ct + 1 вне цикла условий, поэтому он фактически устанавливал $ var2 вместо $ var1, потому что цикл уже сработал один раз.Когда я переместил $ ct + 1 внутри цикла, теперь он работает нормально.Спасибо и извините, что потратил ваше время.Иногда нужно просто поговорить, чтобы найти свою ошибку.

0 голосов
/ 24 сентября 2019

Добро пожаловать в интернет - он работает через ссылки.Если ваш вопрос является продолжением, то ссылка на ответ, на который вы ссылаетесь.Если бы это было https://stackoverflow.com/a/58083537/4299358, то этот код мог бы "потерпеть неудачу", потому что $record мог бы быть пустым, никогда не устанавливая $var1.

Все остальное уже было сказано в комментариях: ваш первый код работает - у вас либо очень устаревшая версия PHP, либо вы сами не тестировали этот код (в собственном PHP-файле, в котором ничего раньше не было).Также комментарии здесь и там предлагают вам вместо этого использовать массивы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...