PHP: persistent variable value

前端 未结 1 1350
小鲜肉
小鲜肉 2020-12-19 17:25

I have to read a file and do some computation, than save the result of this computation inside a variable.

I just need to do this once. In Java + Servlet I can do th

相关标签:
1条回答
  • 2020-12-19 18:03

    No, it won't work like with Java Servlets. You'll have to find a workaround.

    First, I assume that using $_SESSION, $_COOKIE or $_REQUEST in general isn't practicable to you as you want to save the state per server (or per application) and not per 'User Session'.

    Using a database sounds practicable in your case. In a regular application design it will be the most common solution.

    Also you can do something like this, using the serialization capabilities of PHP:

    <?php
    
    $resultfile = 'result.dat';
    if(!file_exists($resultfile)) {
        $result = compute_result('foo bar');
        file_put_contents($resultfile, serialize($result));
    } else {
        $result = unserialize(file_get_contents($resultfile));
    }
    

    Using PHP's serialize() attempt is especially practicable when

    • You are in a PHP only environment
    • $result is a complex datatype but you don't want to create a database structure and map $result too it

    If you are not in a PHP only environment you might prefer other serialization formats as JSON or XML.

    Also the serialization result can be stored as a string in a database instead of a file. Saving it to a database instead of a file would make the application more scalable as the result would be available to all servers that access the same database (cluster).

    In short: I would suggest using a database maybe combined with serialization.

    0 讨论(0)
提交回复
热议问题