pay*_*ing 0 php session static session-variables
下面的代码工作正常:
<?php session_start();
$_SESSION['color'] = 'blue';
class utilities
{
public static $color;
function display()
{
echo utilities::$color = $_SESSION['color'];
}
}
utilities::display(); ?>
Run Code Online (Sandbox Code Playgroud)
这是我想要但不起作用:
<?php session_start();
$_SESSION['color'] = 'blue';
class utilities {
public static $color = $_SESSION['color']; //see here
function display()
{
echo utilities::$color;
} } utilities::display(); ?>
Run Code Online (Sandbox Code Playgroud)
我收到此错误: Parse error: syntax error, unexpected T_VARIABLE in C:\Inetpub\vhosts\morsemfgco.com\httpdocs\secure2\scrap\class.php on line 7
Php不喜欢会话变量存储在函数之外.为什么?这是语法问题还是什么?我不想实例化对象,因为只是调用实用程序函数,我需要一些会话变量全局存储.init()每次运行函数时,我都不想调用函数来存储全局会话变量.解决方案?
在类中,您只能在方法中使用SESSION ...
实际上,如果你想在一个类中做某事,你必须在一个方法中编写代码......
一个类不是一个函数.它有一些变量 - 属性 - 和一些函数 - 作为方法 - 你可以定义变量,你可以初始化它们.但是你不能在方法之外对它们进行任何操作......例如
public static $var1; // OK!
public static $var2=5; //OK!
public static $var3=5+5; //ERROR
Run Code Online (Sandbox Code Playgroud)
如果你想像这样设置它们你必须使用构造函数...(但请记住:在创建对象之前不会调用构造函数...)
<?php
session_start();
$_SESSION['color'] = 'blue';
class utilities {
public static $color;
function __construct()
{
$this->color=$_SESSION['color'];
}
function display()
{
echo utilities::$color;
}
}
utilities::display(); //empty output, because constructor wasn't invoked...
$obj=new utilities();
echo "<br>".$obj->color;
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11224 次 |
| 最近记录: |