require 和 require_once 傻傻分不清楚

昨天在调试一段微信的JSSDK分享代码的时候,按照常规嘛,本来熟门熟路的,将预先写好的js代码加入到single.php里面,结果,网页加载不出来了,删掉代码就能加载,添上代码就卡住。百思不得其解,因为这段代码在另外一个网站上用得好好的,将代码单独复制出来,做成一个单网页,也能执行,就是不能跟single.php兼容。我考虑过是不是公众号的js安全域名没有生效,但是也不是。结果无意中将这一行代码删除:

require ('wxJSSDK/jssdk.php');

然后执行页面,发现页面竟然加载成功了。然后,很巧合,我将页面分享出去,竟然能成功地调用JSSDK!所有自定义分享参数都是正确的。

联想到这段代码之前用的函数是 require_once 而不是 require,我就考虑,是不是只需要执行一次jssdk.php呢?

因此,我将

require ('wxJSSDK/jssdk.php');

替换成

require_once ('wxJSSDK/jssdk.php');

然后再次刷新页面,发现页面还是卡住了,接下来就很诡异了,我将上面这行代码注释掉,再执行一次single.php结果,页面刷新成功,并且JSSDK调用正确,页面分享出去,能够成功执行JSSDK并带上自定义的参数。

好吧,也就只能这样了,能用就行,一行代码害我昨天晚上熬了大半夜。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注