相关疑难解决方法(0)

php中的静态变量是否会持续存在于请求中?

在php中的静态变量陷阱

我来自Java背景,并且最近已经为一个项目切换到了php.我在php中发现了一个意外的行为.

设置为某个静态变量的值 不会在 请求中保持持久性.

我不确定这是否是预期的行为.因为在java中,您始终可以持久保存非常常用的变量,或者在请求中说出dbname,hostname,username,password等常量,这样您就不必总是从本地属性文件中读取它们.

这种行为是否正常?如果它是正常的那么有没有其他方法可以保持分配给请求中的变量的值?

有人可以建议我在PHP中更好的方法吗?

php static persistence

35
推荐指数
2
解决办法
2万
查看次数

跨会话的静态变量

在ASP.NET中,如果我声明一个变量(或对象)静态(或者如果我创建一个单例),我可以让它在多个用户的多个会话中持续存在(它在服务器范围内注册),这样我就不必在每个请求初始化它.

PHP中有这样的功能吗?谢谢

php session

11
推荐指数
2
解决办法
9991
查看次数

PHP优化一个很长的开关案例声明

请看下面的代码

function GetAreaName($AreaCode)
{
  switch ($AreaCode) 
  {
    case 201: return 'New Jersey';
    case 202: return 'Washington';
    // this goes on till
    case 999: return '';
  }
}
Run Code Online (Sandbox Code Playgroud)

假设AreaCode是998,那么就必须经历这么多案件!我们怎样才能优化这个功能?(使用数据库.)

我正在考虑构建一个数组并对其进行二进制搜索?但是这意味着每次调用该函数时都会重建数组?我们如何构建一次数组,缓存它并在每次调用此函数时重复使用?

php arrays optimization caching switch-statement

4
推荐指数
1
解决办法
1852
查看次数

跨多个.php页面的PHP静态变量

我正在用PHP构建一个POP3邮箱.我有以下文件:

  • server_access.php(从POP3服务器获取邮件)
  • data_access.php(将邮件提取/写入本地数据库)
  • mime_parser.php(解析MIME内容)
  • core.php(使用上面的文件并将解析后的邮件存储为名为$ inbox的关联数组)

现在,我有页面 mailbox.php来显示收件箱和showmail.php来显示每个邮件.用户的凭据存储在.ini文件中,并在必要时使用.问题是,我在mailbox.php和showmail.php中都有一个require_once('core.php')

我可以显示收件箱(即$ inbox有值),但是,如果我选择阅读邮件(showmail.php的弹出窗口),$ inbox是一个空数组.

$ inbox在core.php中定义为静态数组

php static-variables

1
推荐指数
1
解决办法
6819
查看次数