php类实例化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php类实例化相关的知识,希望对你有一定的参考价值。
三个文件
1、init.php
$db = new cls_mysql($db_host, $db_user, $db_pass, $db_name); //实例化数据库类
require('/common.php'); //包含通用处理函数文件
2、common.php
function get_navigation()
$sql = 'select * from yz_navigation where 1 and status > 0';
$query = $db->getAll($sql);
return $query;
3、index.php
require('/init.php');
$navigation = get_navigation();
print_r($navigation);
执行index.php,提示:
Notice: Undefined variable: db in common.php on line 10
Fatal error: Call to a member function getAll() on a non-object in common.php on line 10
或者改为
function get_navigation($db)......
$navigation = get_navigation($db);追问
你的方法很好,问题解决了,但我想知道具体是为什么,能不能说说
追答php 是没有链式作用域概念的,函数内默认是不能访问函数外的变量的
global $db; //把php 函数内的$db变量声明为全局变量,也可用通过超级全局变量数组 $_GLOBAL['db'] 直接访问 全局变量 $db
第二种是 传参的方式
php 实例化时父类以及__construct.php
以上是关于php类实例化的主要内容,如果未能解决你的问题,请参考以下文章