Asf_Sg


Introduction

简称: SG, 全称 Super Globals

便捷的, 好记的方式设置, 读取, 删除, 检查某个全局变量, 全局变量生命周期直到PHP脚本执行结束时(OR 收到退出指令时)才释放。

当前对象默认注册了数组属性 $inputs, 有三个子元素分别对应PHP全局变量 $_GET, $_POST, $_COOKIE 值。

这是一个copy-on-write, 对GPC全局变量操作不会影响PHP全局变量的原始值。

这里提供了两种方式操作全局变量, 一种是简单的直接等号赋值方式, 另一种是函数操作方式。

在开启命名空间情况下(asf.use_namespace=1)类名为 Asf\Sg

Class synopsis

<?php
final class Asf_Sg
{
    public static $inputs = array('get' => array(), 'post' => array(), 'cookie' => array())

    public static boolean has(string $name [, bool $strtok = 1])
    public static mixed   get(string $name [, bool $strtok = 1])
    public static boolean set(string $name, mixed $value)
    public static boolean del(string $name)
}

boolean SG::has(string $name [, bool $strtok = 1])

Check for global variables exists, Support for decimal point lookup

mixed SG::get(string $name [, bool $strtok = 1])

Get a global variable value, Can be used anywhere. Support for decimal point lookup

boolean SG::set(string $name, mixed $value)

set a global variable value

boolean SG::del(string $name)

Delete a global variable

Examples

Example #1 Global variable operation

<?php
use Asf\Sg;

$name = 'test';
$str = 'A apple';

Sg::$inputs['what'] = $str;

var_dump(Sg::$inputs['what']); // string(7) "A apple"
var_dump(Sg::get($name)); // NULL
var_dump(Sg::set($name, 'abc123')); // bool(true)
var_dump(Sg::has($name)); // bool(true)
var_dump(Sg::get($name)); // string(6) "abc123"
var_dump(Sg::del($name)); // bool(true)
var_dump(Sg::get($name)); // NULL
var_dump(Sg::has($name)); // bool(false)

unset($name);

Sg::$inputs['post']['list']['product'] = 'asf';
var_dump(Sg::get('post.list.product')); // string(3) "asf"
var_dump(Sg::get('post.list.product', 0)); // NULL
var_dump(Sg::has('post.list.product')); // bool(true)
var_dump(Sg::has('post.list.product', 0)); // bool(false)

Example #2 Cookie object storage

<?php
use Asf\Sg;

$cookie = new Asf_Http_Cookie(['path' => '/', 'domain' => 'box3.cn', 'expire' => 3600, 'secure' => 1, 'httponly' => 1, 'prefix' => 'Asf_']);

Sg::set('cookie', $cookie);

Example #3 Cookie object storage

<?php
use Asf\Sg;

var_dump(sg::$inputs['get']); // var_dump(sg::get('get'))
var_dump(sg::$inputs['post']); // var_dump(sg::get('post'))
var_dump(sg::$inputs['cookie']); // var_dump(sg::get('cookie'))