2015-08-31 2 views
0

Я пытаюсь получить доступ к массиву PHP, используя что-то вроде этого:PhP массив вычитание константы из индекса массива

$ArrayName[$j-1] 

В тот момент я печатаю -1, я немедленно уведомлен о синтаксической ошибке.

Нельзя ли добавить/вычесть константу в/из счетчика массива таким образом?

Вот часть моего кода (пропустил запрос SQL, но запрос работает OK):

$result=$conn->query($query); 

if(!$result) die ("Database access failed: ".$conn->error); 
$rows=$result->num_rows; 
$answerCount=3; 
$totalDataCount=0; 
while($totalDataCount<$rows){ 
for($j=$totalDataCount;$j<$answerCount;++$j){ 
    $result->data_seek($j); 
    $row=$result->fetch_array(MYSQLI_ASSOC); 
    $Answer[$j]=$row['answer_text']; 
} 
$Question4Answers=$row['Question_text']; 
echo <<<_END 

<form action="#" method="post" name="enteranswer"> 
    <table width="400"> 
    <tr> 
    <td><p>$Question4Answers</p></td> 
    </tr> 
    <tr> 
    <td><label> 
     <input type="radio" name="radioGroup1" value="answer1" > 
     $Answer[$j-1]</label></td> 
     </tr> 
     <tr> 
    <td><label> 
     <input type="radio" name="radioGroup1" value="answer2" > 
     $Answer[$j-2] </label></td> 
     </tr> 
    <tr> 
    <td><label> 
     <input type="radio" name="radioGroup1" value="answer3" > 
     $Answer[$j-3] </label></td> 
    </tr> 
    </table> 
    <input type="submit" name="radiosubmit" id="button1css" value="Submit"> 
    </form> 
    _END; 
    $totalDataCount=$totalDataCount+3; 
    $answerCount=$answerCount+3; 
    } 
} 
+0

Какую ошибку вы получаете? – Rizier123

+2

нет, но незаконно создавать ключ массива, который не существует в массиве, например. отрицательный индекс. –

+0

проверить, если вам $ j присваивается такое значение, что $ j-1 идет как отрицательное число –

ответ

1

Не видя свою ошибку, это трудно быть 100%, но, похоже, это ограничение heredoc.

Похоже, она должна быть

{$Answer[$j-3]} 

Это сообщение объясняет

Calling PHP functions within HEREDOC strings

И второй пример в PHP документации heredoc php

+0

Спасибо человеку. Вы попали прямо на голову. – Minaj

+0

Ах, рад это слышать. Добро пожаловать ☺ –

Смежные вопросы