Может кто-нибудь объяснить мне, почему статическая переменная, динамически вызываемая на страницу, не отображает назначенные значения.
Для теста я создал 3 файла.
1) test_scope_1.php: этот файл имеет класс со статическими методами / переменными.
2) test_scope_2.php: содержит вызов метода сверху класса для вывода содержимого.
3) test_scope_render.php: это назначит переменные классу в файле 1 и выведет содержимое класса, будет иметь контейнер для замены элемента dom при нажатии кнопки и в конце будет сгенерирован из файла 2.
В основном исходный выход и выход из второго файла отображаются правильно с правильным количеством элементов в массиве, но когда кнопка нажата для динамической загрузки массива, она возвращает 0. Насколько я понимаю, эти значения как-то вышли из область, но разве статические переменные не доступны из любого места?
Вот содержимое первого файла.
1) test_scope_1.php
class ScopeTest
{
private static $sample_array=array();
public static function push($value)
{
self::$sample_array[]=$value;
}
public static function render()
{
echo "ARRAY COUNT ".count(self::$sample_array);
foreach (self::$sample_array as $index=>$value)
{
echo "INDEX=>".$index." VALUE=>".$value;
}
}
}
2) test_scope_2.php
include_once "test_scope_1.php";
echo "This is another file test_scope_2.php<br>";
echo ScopeTest::render();
3) test_scope_render.php
<?php
ScopeTest::push(12);
ScopeTest::push(15);
ScopeTest::push(13);
ScopeTest::push(14);
ScopeTest::push(27);
//This outputs the above entries
ScopeTest::render();
//This as well outputs the above entries with array count
include_once "test_scope_2.php";
?>
//The problem arises here when the button is clicked
clicking on the button will get all the array from above from ajax call.
<button id='the_bomb'>click for magic</button>
<div id='replace_this' style='color:red'>
This will be replaced.
</div>
Вот выходное изображение, порядок отображаемого вывода не совпадает с размещенным здесь кодом, второй вывод и третий чередуются.
Задача ещё не решена.
Других решений пока нет …