การเก็บรักษาวัตถุและทรัพยากร

ในการพัฒนาเว็บแบบดั้งเดิม วัตถุ ข้อมูล และทรัพยากรที่สร้างขึ้นโดย PHP จะถูกปล่อยทั้งหมดหลังจากการร้องขอเสร็จสิ้น ทำให้ยากต่อการเก็บรักษา แต่ใน Workerman เราสามารถทำสิ่งเหล่านี้ได้อย่างง่ายดาย

ใน Workerman หากต้องการบันทึกข้อมูลหรือทรัพยากรบางอย่างในหน่วยความจำอย่างถาวร สามารถวางทรัพยากรไว้ในตัวแปรทั่วโลกหรือตัวแปรสแตติกของคลาส

ตัวอย่างโค้ดด้านล่าง:

ใช้ตัวแปรทั่วโลก $connection_count เพื่อเก็บจำนวนการเชื่อมต่อของไคลเอนต์ในกระบวนการปัจจุบัน

<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

// ตัวแปรทั่วโลก เพื่อเก็บจำนวนการเชื่อมต่อของไคลเอนต์ในกระบวนการปัจจุบัน
$connection_count = 0;

$worker = new Worker('tcp://0.0.0.0:1236');

$worker->onConnect = function(TcpConnection $connection)
{
    // เมื่อมีการเชื่อมต่อของไคลเอนต์ใหม่ จำนวนการเชื่อมต่อจะเพิ่มขึ้น 1
    global $connection_count;
    ++$connection_count;
    echo "now connection_count=$connection_count\n";
};

$worker->onClose = function(TcpConnection $connection)
{
    // เมื่อไคลเอนต์ปิดการเชื่อมต่อ จำนวนการเชื่อมต่อจะลดลง 1
    global $connection_count;
    $connection_count--;
    echo "now connection_count=$connection_count\n";
};

การศึกษาเกี่ยวกับขอบเขตตัวแปร PHP:

https://php.net/manual/zh/language.variables.scope.php