Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 让全局变量在函数中工作,我缺少什么?_Php_Global - Fatal编程技术网

Php 让全局变量在函数中工作,我缺少什么?

Php 让全局变量在函数中工作,我缺少什么?,php,global,Php,Global,我是php新手,不确定为什么这个全局调用不起作用。我正在尝试获取URL(Wordpress站点)并将facebook共享URL导出到一个短代码。 我当前的输出仅仅是“https://www.facebook.com/sharer/sharer.php?u=" 您的全球呼叫是正确的。 为什么要在获取permalink()时使用urlencode() 只需使用get\u permalink()或esc\u url(get\u permalink()) 第二个将不编码/urlencode是根据兼容性建

我是php新手,不确定为什么这个全局调用不起作用。我正在尝试获取URL(Wordpress站点)并将facebook共享URL导出到一个短代码。 我当前的输出仅仅是“https://www.facebook.com/sharer/sharer.php?u="


您的全球呼叫是正确的。 为什么要在获取permalink()时使用urlencode()

只需使用
get\u permalink()
esc\u url(get\u permalink())


第二个将不编码/

urlencode是根据兼容性建议的。没有它看起来好多了!因此,如果我正确编写了全局调用,你知道它为什么不工作吗?如果你用一个随机字符串作为$dhURL检查,它工作得很好。因此,如果我在函数中使用get_the_permalink(),它将正常工作并按预期返回,那么get_permalink()将生成null。我希望它在函数之外(因此是全局的),因为它将通过添加global$dhURL在其他functionsTry中使用;在你申报之前。所以,在得到永久链接之前。子函数变量很奇怪。检查手册“可变范围”页面上的注释您的意思是添加全局$dhURL;在函数之外的声明之前?我试过了,但没有成功。似乎$dhURL=get_permalink();由于某种原因,不希望在功能之外工作
$dhURL = urlencode(get_the_permalink());

function facebookshare_function() {
    global $dhURL;
    $FBURL = 'https://www.facebook.com/sharer/sharer.php?u='.$dhURL;
    return $FBURL;
}
add_shortcode('facebookshare', 'facebookshare_function');