Я работаю с Php менее 2 месяцев (это также мой первый вопрос, поэтому, пожалуйста, скажите мне, если я что-то упустил), и все прошло гладко вплоть до сегодняшнего дня. Я работаю над плагином форм для Wordpress и в настоящее время реализую код, чтобы формы сохранялись в базе данных для соединения с шорткодом, включающим идентификатор формы в базе данных. Первая форма имеет идентификатор 1, а шорткод IForm_1. Довольно просто.
Проблема возникает при зацикливании всех форм и невозможности передать значение $ ID из цикла в функцию IForm.
$ID= 0;
$FormID= 0;
settype($ID, "integer");
for ($x = 1; $x <= 300; $x++) {
global $ID;
$ID++;
$ShortCode = "IForm_";
$ShortCode .= $ID;
$FormID = $ID;
add_shortcode( $ShortCode, 'IForm_Array' );
$ShortCode ='';
}
Вот цикл, который очень прост, когда $ ShortCode совпадает с шорткодом, используемым на сайте, который он работает, и IForm используется как надо.
function IForm(){
global $ID;
//testing_decode();
// Gets the value of baseTest from getDB and puts it in test.
$DBForm = getDB($ID);
$Form = $DBForm;
$Form .= "Works but not really";
return $Form;
}
Вот функция.
Проблема в том, что $ ID всегда равен 300 в функции, которая является концом цикла. IForm выполняется, когда $ ID в цикле совпадает с коротким кодом на сайте / посте, который говорит мне, что значение $ ID действительно корректно для некоторой части цикла. Когда идентификатор действительно правильный, я хотел бы передать его в функцию IForm, чтобы использовать его для поиска правильной формы в базе данных (MySQL).
Теперь мой вопрос заключается в том, как передать (если это вообще возможно) значение $ ID в 3-м ряду цикла в 5-й ряд функции. В качестве альтернативы можно было бы принудительно разорвать цикл, когда он выстраивается в линию, и использовать последнее значение $ ID, которое будет передано в IForm.