免责声明:是的,我被迫支持PHP 4.3.0.我知道它已经死了.不,我不能升级它,因为我正在处理多个服务器,其中一些我没有su访问权限.
好吧,因为我不能使用,self::因为它是PHP5特定的,我应该如何在PHP4类中实现静态?到目前为止,我的研究似乎我至少可以使用static关键字除了只在函数上下文中,我已经看到另一种方法使用$ _GLOBALS,但我不认为我将使用它.
就这样我们在同一页面上我需要访问4中的这些PHP5静态:
public static $_monthTable = array(
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
public static $_yearTable = array(
1970 => 0, 1960 => -315619200);
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经提出了我自己的函数,基本上设置一个静态变量,如果找不到,我将所有静态属性硬编码到其中.但是,我不完全确定如何在同一类中的anther方法中引用这些静态,假设它没有被实例化并且没有触发构造函数,这意味着我无法使用$this.
class DateClass {
function statics( $name = null ) {
static $statics = array();
if ( count( $statics ) == 0 ) {
$statics['months'] = array(
'Jan', 'Feb'
);
}
if ( $name != null && array_key_exists($name, $statics ) ) …Run Code Online (Sandbox Code Playgroud) 我的User主应用程序数据库中已经有一个表,其中包含一个电子邮件地址(用作用户名)和密码.我想使用我的数据库而不是默认的身份验证数据库(ASPNETDB)进行身份验证.
问题:
这是一个坏主意吗?使用我自己的数据库进行身份验证是否是一大堆蠕虫?
这样做我加了多少工作?我已经有用于散列密码的代码和一个检查电子邮件和密码是否与数据库匹配的查询.所以,我不会从头开始.
使用我的数据库而不是ASPNETDB需要做什么?我希望这可以通过几个简单的步骤来描述,但如果没有,你能指出我的好消息吗?
更新
在我的第三个问题上,我仍然在寻找更多细节.我需要自己写MembershipProvider吗?我需要对web.config文件进行哪些更改?[Authorize]如果我编写自己的解决方案,该属性是否仍然有用?我可以使用自动生成的AccountController进行一些小修改,还是我基本上需要从头开始重写帐户控制器?
我的sql server 2005表中有一列应该保存员工服务的月数.
由于我也有员工参与的日期,我希望"months_In_Service"列成为计算列.
现在,如果我DATEDIFF(month,[DateEngaged],GETDATE())用作服务计算列中月份的公式,则结果有时是正确的,有时则不正确.
获得DateEngaged值和当前日期之间的月数的更可靠的方法是什么?我应该在计算列中使用哪个公式?
我已经了解到,可以使用视图创建自定义"表视图"(也就是说)来聚合来自多个表的相关数据.
我的问题是:观点的优点是什么?具体来说,假设我有两个表:
event | eid, typeid, name
eventtype | typeid, max_team_members
Run Code Online (Sandbox Code Playgroud)
现在我创建一个视图:
eventdetails | event.eid, event.name, eventtype.max_team_members
| where event.typeid=eventtype.typeid
Run Code Online (Sandbox Code Playgroud)
现在,如果我想让一些团队允许的最大成员数量event,我可以:
每种方法的优点/缺点是什么?
另一个问题是:如果表事件和事件类型中的数据得到更新,是否有任何开销涉及更新视图中的数据(考虑到它缓存结果数据)?
我想问一下他们用来记住各种编程技术的不同技术.我们通过各种书籍和各种在线技巧和教程,我们也从其他人编写的代码中获得了很多想法.
现在所有这些输入都以某种格式存储或存储,以便在引用时可以轻松找到它们.没有这样的存储可能导致重写代码或重新发明轮子.
我用来创建一个Working文件夹,在那里我保留所有试用代码,但是在几天/几个月后的某个时间,因为代码没有被标记或命名正确,很难再找到它.
function move() {
pos = pos+1;
t = setTimeout(move, 100);
}
Run Code Online (Sandbox Code Playgroud)
这可以称为递归吗?如果是,您能提供任何参考吗?
是否有以编程方式运行Visual Studio单元测试的API?
使用Process.Start()运行MSTests.exe在当前方案中不起作用.我正在寻找的是像NUnit SimpleTestRunner.
有任何想法吗?
/埃里克
将for循环中的200个数据插入到sqlserver 2000数据库中,顺序改变,为什么?
当我使用mysql时,它没有问题.
我的意思是:
当你插入2,然后插入3,然后插入1,在mysql中你会看到2,3,1喜欢你插入的顺序.但在sqlsever2000中可能没有.
作为回答另一个问题的一部分,我写了下面的代码,其行为乍一看似乎很奇怪:
print True # outputs true
True = False; print True # outputs false
True = True; print True # outputs false
True = not True; print True # outputs true
Run Code Online (Sandbox Code Playgroud)
谁能解释这种奇怪的行为?我认为这与Python的对象模型有关,但我不确定.
它是Cygwin下的2.5.2版本.
越来越多的应用程序正在转向云:用于生产力应用程序的Google Docs,用于即时消息传递的Meebo,用于电子邮件的Gmail,用于CRM的Salesforce等.
然而,我注意到,与桌面版本不同的是,很少有这些网络应用程序利用鼠标的"右键单击".大多数情况下,当右键单击Web应用程序时,我会获得标准浏览器右键菜单.
我不相信它与技术实现有关,因为修改右键菜单在Javascript中非常简单.
我错过了一个真正的原因吗?
编辑:最流行的原因似乎是它不是用户所期望的.另一个提到的原因是一些用户禁用Javascript - 这是一个有效的答案 - 但在我们的情况下,我们可以放弃这种可能性,因为我们谈论的是需要Javascript的应用程序而不管右键单击选项.
现在,让我稍微扩展一下我的问题:
sql-server ×3
javascript ×2
mysql ×2
sql ×2
asp.net ×1
asp.net-mvc ×1
c# ×1
datediff ×1
datetime ×1
mstest ×1
php ×1
php4 ×1
python ×1
python-2.x ×1
recursion ×1
t-sql ×1
unit-testing ×1
views ×1