Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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 - Fatal编程技术网

在php中从另一个页面调用函数

在php中从另一个页面调用函数,php,Php,我正在调用一个在smsconfig.php文件中定义的函数,如 $GLOBAL_URL_OF_THE_SITE= "http://webfaction"; function get_site_url(){ return $GLOBAL_URL_OF_THE_SITE; } 在我的index.php文件中,我将包含该smsconfig.php文件,然后我将执行以下操作: <?php include("smsconfig.php"); ?>

我正在调用一个在smsconfig.php文件中定义的函数,如

$GLOBAL_URL_OF_THE_SITE= "http://webfaction";


function get_site_url(){
    return $GLOBAL_URL_OF_THE_SITE; 
}
在我的index.php文件中,我将包含该smsconfig.php文件,然后我将执行以下操作:

  <?php 
    include("smsconfig.php");
    ?>
    <html>
    <head >
     <link rel="stylesheet" type="text/css" href="default.css" />
        <script src="<?php echo get_site_url();?>/UI/jquery/jquery-1.7.2.min.js" type="text/javascript"></script>

请告诉我我做错了什么?

这是变量范围的问题。函数无法看到该变量,因为该变量不在其作用域内。你应该这样做:

function get_site_url(){
    $GLOBAL_URL_OF_THE_SITE= "http://webfaction";

    return $GLOBAL_URL_OF_THE_SITE; 
}

这是一个可变范围的问题。函数无法看到该变量,因为该变量不在其作用域内。你应该这样做:

function get_site_url(){
    $GLOBAL_URL_OF_THE_SITE= "http://webfaction";

    return $GLOBAL_URL_OF_THE_SITE; 
}

默认情况下,函数无权访问全局变量。在访问变量之前,必须使用
global
声明变量:

$GLOBAL_URL_OF_THE_SITE= "http://webfaction";

function get_site_url(){
    global $GLOBAL_URL_OF_THE_SITE;

    return $GLOBAL_URL_OF_THE_SITE; 
}
如果没有
global
,您应该会看到一条警告,您可能正在抑制该警告:

PHP注意:未定义变量:站点的全局URL


默认情况下,函数无权访问全局变量。在访问变量之前,必须使用
global
声明变量:

$GLOBAL_URL_OF_THE_SITE= "http://webfaction";

function get_site_url(){
    global $GLOBAL_URL_OF_THE_SITE;

    return $GLOBAL_URL_OF_THE_SITE; 
}
如果没有
global
,您应该会看到一条警告,您可能正在抑制该警告:

PHP注意:未定义变量:站点的全局URL


您可以使用数组
$GLOBALS
在函数体中编写代码而不声明全局。此数组将所有全局变量作为键。

您可以使用数组
$GLOBALS
在函数体中进行编码,而无需声明全局。这个数组的所有全局变量都是键。

不,不,不是这样的,实际上我在/etc/host中将我的127.0.0.1地址设为webpartion,您可以使用常量来实现这一点;查找
define()
。不,不,不是这样的。实际上,我将我的127.0.0.1地址设置为/etc/host中的webpartion。您可以使用常量来实现这一点;查找
define()
。更好的解决方案是首先避免使用全局变量。另外几点:您不应该在名称中嵌入变量的作用域之类的内容,只需将其称为网站的
$URL\u
;您应该选择较短的变量名
SITE\u URL
与站点的
URL\u
一样短、易读、易于沟通;您应该保留
大写字母
作为真常量;如果您试图定义真正的常量,应该使用。所有这些加起来就是
define(“SITE\u URL”http://mysite.com");更好的解决方案是首先避免全局变量。另外几点:您不应该在名称中嵌入变量的作用域之类的内容,只需将其称为网站的
$URL\u
;您应该选择较短的变量名
SITE\u URL
与站点的
URL\u
一样短、易读、易于沟通;您应该保留
大写字母
作为真常量;如果您试图定义真正的常量,应该使用。所有这些加起来就是
define(“SITE\u URL”http://mysite.com");我想这要视情况而定。如果这将用于在任何地方生成URL,那么如果在该例程中或全局声明URL,则不会产生任何功能上的差异。但是,是的,米格尔的解决方案更好。如果我将变量定义为public@user1667633-看一看meagar的评论。@andrewsi我的解决方案不是“我的解决方案”,我只是更正了我们收到的代码。你的解决方案是更好的解决方案。声明一个全局函数和一个全局变量来访问该函数是没有意义的。@user1667633类外没有“public”变量。我想这取决于它。如果这将用于在任何地方生成URL,那么如果在该例程中或全局声明URL,则不会产生任何功能上的差异。但是,是的,米格尔的解决方案更好。如果我将变量定义为public@user1667633-看一看meagar的评论。@andrewsi我的解决方案不是“我的解决方案”,我只是更正了我们收到的代码。你的解决方案是更好的解决方案。声明一个全局函数和一个全局变量来访问该函数是没有意义的。@user1667633类外没有“public”变量。