繁体   English   中英

在php中定义全局变量

[英]Defining global variables in php

我正在使用Windows 7 Ultimate,SQL Server 2008 R2,php 5.2.6我是PHP的新手。 我有一个名为globalvars.php的文件,其中定义了全局变量。

globalvars.php

<?
  session_start();
  include_once('database.php');

  //global vars
  $_APP["SQL_DB_NAME"]="DB_NAME";
  $_APP["SQL_DB_SERVER_NAME"]="SERVER_NAME";
  $_APP["SQL_DB_USER"]="USERNAME";
  $_APP["SQL_DB_PASS"]="PASSWORD";

  $_APP["DATE_FORMAT"] = "d-m-Y";
  $_APP["TIME_FORMAT"] = "H:i";

  //generic function for SQL composition to avoid 's errors     
  function SQuoteEx($str)
  {
return "'" . str_replace("'","''",$str) . "'";
  }
  function RemoveSQuoteEx($str)
  {
return "'" . str_replace("'","",$str) . "'";
  }
  ?>

我也有一个名为database.php的文件,其中使用连接到SQL Server数据库的代码片段函数调用了全局var:

database.php

function DBConnect($sql,$debug=0)
  {
global $_APP;
//connect to db and execute query
$cnn = mssql_connect($_APP["SQL_DB_SERVER_NAME"], $_APP["SQL_DB_USER"],       $_APP["SQL_DB_PASS"]) or die(errorHandlingPage(mssql_get_last_message()));
$selected = mssql_select_db($_APP["SQL_DB_NAME"], $cnn) or die(errorHandlingPage(mssql_get_last_message())); 
$debug = 0;
//if debug mode echo sql
if ($debug) echo $sql."<br>";
//execute and return rs

$return = mssql_query($sql) or die(errorHandlingPage(mssql_get_last_message()));

if($return){
    return $return;
}   
  }

由于某些原因,database.php文件无法读取全局变量。 有什么想法吗? 没有通过mssql_get_last_message()传递的消息。 谢谢。

这是因为声明全局变量之前要包括database.php文件。 只需移动include_once('database.php'); 到声明的底部。

在PHP中,当您include另一个PHP文件时,将立即解析并执行该文件。 制作include_once('database.php'); 之前 ,您应该声明所需的任何变量include_once('database.php'); 文件。

您在浏览器中呼叫哪个页面? 看来您将在浏览器中调用database.php文件来运行该功能。

话虽如此,在database.php文件中,应该在文件的开头包含globalvars.php。

database.php

include_once('globalvars.php');
// rest of your code...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM