全局变量存储问题

#1 chaobo_wu

speedphp用一个全局数组$GLOBALS['G_SP']["inst_class"]存储已经实例化的类名称,这样一来,当control文件名和model文件名想同的时候,在control文件中用spClass函数实例化与其名称相同的model类时返回的是control类实例化的句柄,而不是model类实例化后的对象,所以用这个对象去调用create之类的方法时会提示找不到方法,所以建议control文件与model文件两者的实例化类名称用两个不同的全局数组来存储以避免发生冲突

2010-05-19 14:30:41

#2 jake

这个问题,主要是开发者的开发习惯上来避免的,比如说我个人比较喜欢将模型类命名成 lib_users,前面加个lib_来进行区分。

在speedphp 3,如果控制器找不到方法,会提示是否与模型类重名。
另外,如果按照楼主说的方式,在类重名的情况下,将会引发PHP错误提示,这样开发者更难以判断重名的问题。

2010-05-19 14:46:24