Heim >Backend-Entwicklung >PHP-Tutorial >为什么调用函数时必须把数据库连接文件放在函数体里面

为什么调用函数时必须把数据库连接文件放在函数体里面

WBOY
WBOYOriginal
2016-06-23 14:15:18994Durchsuche

像下面这个程序:

<? header("Content-type: text/html; charset=gb2312");   $act=$_GET["act"];if($act=="del")	{		 	//删除记录	$id =$_GET["id"];	require('conn.php');	$conn->query("delete from lyb where id=$id");	fy();	}if($act=="list") { fy();}function fy() {require('conn.php'); $sql="select * from lyb order by ID desc";	//echo $sql;$result=$conn->query($sql);}


如果把 require('conn.php');写在函数的外面就不行,如下所示。这样如果有几个if语句的话,require('conn.php');就要重复写几遍,很不方便。我记得无参无返回值的函数,其实就相当于把该函数体中的代码插入到调用函数的位置处,但从这里看并不是这样的哦。

<? header("Content-type: text/html; charset=gb2312"); require('conn.php');  $act=$_GET["act"];if($act=="del")	{		 	//删除记录	$id =$_GET["id"];	$conn->query("delete from lyb where id=$id");	fy();	}if($act=="list") { fy();}function fy() { $sql="select * from lyb order by ID desc";	//echo $sql;$result=$conn->query($sql);}


回复讨论(解决方案)

写在外面,$con 就是全局变量了。在函数体内当然不可用啦。改成这样
function fy() {
  global $conn;
 $sql="select * from lyb order by ID desc";
    //echo $sql;
 
$result=$conn->query($sql);}

在里面包含,如果担心重复包含,可以用 require_once('conn.php'); 来避免。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:问个.htaccess通用写法怎么写Nächster Artikel:我是刚转做PHP的