ホームページ >バックエンド開発 >PHPチュートリアル >関数を呼び出すときにデータベース接続ファイルを関数本体に配置する必要があるのはなぜですか?
次のようなプログラム:
<? 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);}
<? 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'); を使用することで回避できます。