@HardlinePeak936

Как сделать независимый скрипт php и взаимодействовать с ним?

Представим что у меня есть два скрипта
index.php
<?php
echo getString();
setString("stop");
echo getString();
?>


script.php:
<?php
$string = "start";
function getString() {
    return $this->string;
}
function setString($str) {
    $this->string = $str;
}
?>


При открытии index.php в браузере у меня появляется ошибка 500, чего и следовало ожидать ведь функции getString и setString не объявлены в нём. Если подключить script.php в index.php к примеру с помощью require_once, то всё заработает и выведет "start stop", но если обновить страницу то будет тоже самое, а мне хотелось бы чтобы теперь выводило "stop stop". Как мне это сделать?
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 2
nefone
@nefone
Junior PHP разработчик
Как мне это сделать?

Если Вам очень хочется, то:
index.php
<?php
require_once 'MyString.php';
$mystr = new MyString();
echo $mystr->getString();
$mystr->setString('stop');
echo $mystr->getString();


MyString.php
<?php

class MyString
{
    private $string;

    public function __construct(string $str = ' start ')
    {
        session_start();
        if (empty($_SESSION['string'])) {
            $this->string = $str;
        }
    }

    public function setString(string $str) 
    {
        $this->string = $str;
        $_SESSION['string'] = $this->string;
    }

    public function getString()
    {
        return $_SESSION['string'] ?? $this->string;
    }
}


всё заработает и выведет "start stop", но если обновить страницу то будет тоже самое, а мне хотелось бы чтобы теперь выводило "stop stop"

Данное решение при первом открытии выведет "start stop", а если обновить страницу, то "stop stop".
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
Если подключить script.php в index.php к примеру с помощью require_once, то всё заработает и выведет "start stop", но если обновить страницу то будет тоже самое
это называется браузерный кэш - Ctrl+F5 в помощь.
если не поможет, то запусти в консоли `php -f index.php`
если результат все еще неверный, то у тебя скорее всего включен opcache и гугл тебе в помощь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы