我来自Java背景,并且最近已经为一个项目切换到了php.我在php中发现了一个意外的行为.
设置为某个静态变量的值 不会在 请求中保持持久性.
我不确定这是否是预期的行为.因为在java中,您始终可以持久保存非常常用的变量,或者在请求中说出dbname,hostname,username,password等常量,这样您就不必总是从本地属性文件中读取它们.
这种行为是否正常?如果它是正常的那么有没有其他方法可以保持分配给请求中的变量的值?
有人可以建议我在PHP中更好的方法吗?
在ASP.NET中,如果我声明一个变量(或对象)静态(或者如果我创建一个单例),我可以让它在多个用户的多个会话中持续存在(它在服务器范围内注册),这样我就不必在每个请求初始化它.
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构建一个POP3邮箱.我有以下文件:
现在,我有页面 mailbox.php来显示收件箱和showmail.php来显示每个邮件.用户的凭据存储在.ini文件中,并在必要时使用.问题是,我在mailbox.php和showmail.php中都有一个require_once('core.php')
我可以显示收件箱(即$ inbox有值),但是,如果我选择阅读邮件(showmail.php的弹出窗口),$ inbox是一个空数组.
$ inbox在core.php中定义为静态数组