包含文件中的PHP函数不在Web Server上执行

时间:2014-01-07 16:13:17

标签: php function include webserver hosting

我正在将网站从我的个人开发服务器迁移到Windstream的业务托管服务器。我已经遇到了使用PHP 5.4开发的问题,只是发现我的静态函数不适用于WS的5.1.4安装。我已经解决了这些问题,并没有面对一个我似乎无法在互联网上找到任何帮助的问题。

我使用的所有静态函数都被重写为类范围之外的函数。而不是

class Product{
...
public static function myFunction(){}
...
}

我现在有

function myFunction(){}

class Product{...}

在我附带的Product.php文件中。

但是,当我尝试从代码中调用myFunction()时,没有任何反应。我知道虚假来自WS的错误处理,但重点是,该功能不起作用。为了验证这一点,我采取了以下步骤:

在Product.php中紧跟echo "entered included";之后插入行<?php。这将在索引页面上打印“输入已包含”,表示我的include正在运行。我在最后的?>之前做了同样的事情并得到了相同的结果,所以我认为它不会挂在包含的文件中。

我已将包含文件中的myFunction()更改为

function myFunction(){echo "myFunction works";}

myFunction()的调用仍然没有发生任何事情。

我已将myFunction()移动到包含文件(myFunction()现在位于index.php而不是Product.php; index包含Product.php)。这一次,myFunction()执行没有问题。

对于我的'hack it it it that it it it what'sensibilities,这告诉我服务器在包含的文件中声明的函数存在问题;老实说,我完全不知道发生了什么,任何帮助都会受到赞赏。他们的网站目前正在关闭,他们预计它只会在一天内离线,所以我会尝试几乎没有牺牲一只肥胖的小牛。

我知道我应该发布更具体的代码,但由于这是客户的实际网站,我试图尽可能少地将实际代码放在这里。我很乐意在此条目中附加特定的代码部分,因为它们需要澄清。

提前感谢您的考虑。

@Rottingham:首先,感谢3v4l链接。其次,我对5.4 vs 5.1.4中静态方法的假设来自php.net关于静态成员和方法的这一行:

“从PHP 5.3.0开始,可以使用变量引用该类。变量的值不能是关键字(例如self,parent和static)。” src - http://www.php.net/manual/en/language.oop5.static.php

由于我的版本和服务器版本位于所提及的5.3标记的不同侧面,我错误地认为这是我的问题。

第三,当我从日常工作中进入时,如果尚未找到解决方案,我将更新我的代码以显示错误并更新此帖子。

最终,我的问题不在于使用静态方法(因为我不再使用它们),而是使用在包含的.php文件中声明的任何函数。

0 个答案:

没有答案