祝大家新年快乐。
我在php中遇到一个简单的案例,也许你可以在这里点亮我的想法:
我有js脚本的php页面。此脚本(基于jquery)包含一个文档就绪事件函数,用于进行Ajax调用:
$.ajax({
type: "POST",
url: "actions/DatasourceEmail.php",
data: param,
dataType: "json",
dataFilter: function(data, type){
return data;
},
error: function(xhj, statut, thrown){
alert(xhj.responseText);
},
success: function(result){
...
这很好用。我的问题出在服务器端。当我实习课程时,代码并没有进入内部,而是以我不这么认为的方式进行实例化。我有一个记录功能(单例),它在第一次调用时跟踪。但是当我实习时,不在课堂内。
class testclass
{
function instance(){
ApplicationMedSoft::CurrentApplication()->Trace("@@@@ initialisation !!!");
}
}
...
ApplicationMedSoft::CurrentApplication()->Trace("@@@@ initialisation !!!");
$flex = new testclass();
结果日志:
...
[23/01/2018 9:06:34] - [SQL] ==> 1 resultat(s)
[23/01/2018 9:06:34] - @@@@ initialisation !!! <= First call
??? second (inside class??)
我的所有文件都已正确包含在内 就像我的单身人员不工作是这个班级,但在其他一些课程中,它是有效的。 通过寻找太多问题,我觉得我再也看不到了。帮助:)
感谢您阅读
Iainh。
答案 0 :(得分:0)
当你在这里制作一个类的对象时,你需要返回一些东西: -
$flex = new testclass();
echo $ flex或返回$ flex,如果它的数组和函数json_encode为它然后回显或返回如下: -
return json_encode($flex);
第三,你需要在它之后添加exit或die语句。
答案 1 :(得分:0)
如果您希望班级在刚创建时记录某些内容,则需要调用您的函数__construct
而不是instance
。所以你上课应该是...... ...
class testclass
{
public function __construct(){
ApplicationMedSoft::CurrentApplication()->Trace("@@@@ initialisation !!!");
}
}
我还建议您将类名更改为TestClass
,因为这更符合惯例。
如果你希望这个类的行为像一个单例类,那么你需要做一些稍微不同的事情......
class TestClass
{
public static function instance(){
ApplicationMedSoft::CurrentApplication()->Trace("@@@@ initialisation !!!");
}
}
在方法中添加static
,您可以在不创建新对象的情况下调用它,使用...来调用它。
$flex = TestClass::instance();
阅读http://www.phptherightway.com/pages/Design-Patterns.html了解更多信息。