我的定义是指使用define
函数。我想知道的是我能把这个缩短一下吗?
$GLOBALS['MY_VAR']
到MY_VAR
..。并在任何范围内使用!(不必在函数中使用global $myvar;
)。
编辑:示例:print_r(MY_VAR['somekey']);
会出错!
编辑:我知道它是一个常量变量,但它不是指向数组的常量指针吗?我认为数组在php中是可变的?
发布于 2014-02-06 22:29:21
试试这个:
define("CONSTANT","anything");
而且您可以在任何范围内的任何地方使用CONSTANT
。
例子:
define("CONSTANT","123abc321");
function test(){
return CONSTANT;
}
echo test(); //echoes 123abc321
但
请注意,不能将数组赋值为常量值。
发布于 2014-02-06 22:33:17
“定义”指的是常数,而不是全局值。常量可以在任何地方使用。下面是您将如何使用它与您给出的例子。
define( 'MY_VAR', $GLOBALS['MY_VAR'] );
更多信息在这里:http://uk1.php.net/define
发布于 2014-02-06 22:50:00
嗯,总是一个常数吗?我想更好的方法是你自己做记号。如果这样做,您可以从任何地方访问令牌,并编辑、读取或更改此令牌中的值。
为了满足您的需要,构建一个令牌类(只需复制并粘贴到名为MyTokenHolder.php的文件中):
class MyTokenHolder
{
protected static $_sessionkey = "BE SURE TO OVERRIDE THIS KEY";
//Define your values here
public $Username;
public $UserID;
public function __construct()
{
if(isset($_SESSION[self::$_sessionkey]))
{
$token = unserialize(base64_decode($_SESSION[self::$_sessionkey]));
//see above public params
$this->Username = $token->Username;
$this->UserID = (int)$token->UserID;
}
}
public function SaveToSession()
{
$_SESSION[self::$_sessionkey] = base64_encode(serialize($this));
}
public static function DestroySession()
{
unset($_SESSION[self::$_sessionkey]);
}
}
现在,您可以设置在令牌中定义的值:
//Set Values
$token = new MyTokenHolder();
$token->Username = 'test';
$token->UserID = 99;
$token->SaveToSession();
你也可以从令牌读取你的值。
//Read Values
$token = new MyTokenHolder();
echo $token->UserID;
echo $token->Username;
在这里测试自己- SQL:http://ideone.com/jj7r6l
https://stackoverflow.com/questions/21615436
复制相似问题