PHP поток безопасности использования статических членов класса в качестве супер глобальной переменной - PullRequest
0 голосов
/ 13 октября 2018

Я хочу, чтобы мои собственные суперглобальные переменные были доступны из всех моих сценариев, и я использую статические члены класса для достижения этой цели, но я обеспокоен тем, что, поскольку сервер php создает отдельный поток для каждого файла сценария и в некоторыхиз моих сценариев, которые я читаю или изменяю эти переменные, должны ли критические участки моего кода быть защищены мьютекс-блокировками?

пример использования

SuperGlobals.php

class MySuperGlobals {
      public static $Variables=array("visited"=>array());

     }

index.php

<?php

   include "SuperGlobals.php";
   array_push(MySuperGlobals::$Variables["visited"] ,"index");
   echo MySuperGlobals::$Variables["visited"][count(MySuperGlobals::$Variables["visited"])-1];//last element

?>

page1.php

<?php
    include "SuperGlobals.php";
    array_push(MySuperGlobals::$Variables["visited"] ,"page1");
    echo MySuperGlobals::$Variables["visited"][count(MySuperGlobals::$Variables["visited"])-1];//last element
?>

в приведенном выше примере - только для array_push потокобезопасный для статического члена (игнорируя эхо) икак насчет всего толчка и эха, если мы хотим защитить это, что должно быть сделано?я должен создать статический объект взаимного исключения в классе и заблокировать и разблокировать эти строки?

...