被引用的类里怎么调用外部变量

lshfong 2014-05-21 02:01:47

class login
{

private $mysql;
private $admin;
public function __construct($params)
{

$this->mysql=require_once(SERVER_ROOT.'/library/mysql.class.php');
$this->admin=require_once(SERVER_ROOT.'/library/admin.class.php');
}
}
class admin
{

public function __construct($params)
{
这里怎么引用login类中的$mysql
}
}
...全文
219 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
码无边 2014-05-27
  • 打赏
  • 举报
回复
private只能在类的内部调用,public可以在外部调用该属性,可以看看手册。
傲雪星枫 2014-05-26
  • 打赏
  • 举报
回复
因为mysql是私有属性,如果要读取需要提供公用调用方法。 以下是代码:

<?php
class login
{
     
    private $mysql;
    private $admin;
    public function __construct($params)
    {
         
        $this->mysql=require_once(SERVER_ROOT.'/library/mysql.class.php');   
        $this->admin=require_once(SERVER_ROOT.'/library/admin.class.php');
    }

    public function getMysql(){
    	return $this->mysql;
    }
}

class admin
{   
 
    public function __construct($params)
    {
    	$oLogin = new login();
    	echo $oLogin->getMysql();
    }
}
?>
cwk44 2014-05-26
  • 打赏
  • 举报
回复
只需要获得一个也可以这样: public function getMysql() { return $this->mysql; } 这样可以防止写入,但麻烦,所以还是推荐改成public
cwk44 2014-05-26
  • 打赏
  • 举报
回复
要引用就改成public... 不然就像一楼那样做
qianqi888 2014-05-23
  • 打赏
  • 举报
回复
一楼的可以实现
李睿_Lee 2014-05-21
  • 打赏
  • 举报
回复
我觉得你这结构有问题。。。。
wanghao3616 2014-05-21
  • 打赏
  • 举报
回复
1楼的方法是属性访问器 ,你可以采用 当存取一个类的不存在的属性时,解析器会判断是否有以下两个属性访问器方法: __get和__set。 如果有,则会自动调用这些方法。通过属性访问器方法可以控制对类属性的访问,以实现对要保存的数据进行检查,从而确保属性值有意义的数据。__get方法只有一个参数,用于传递属性的名称。__set方法有两个参数,分别用于传递属性的名称和值。
天涯过客009 2014-05-21
  • 打赏
  • 举报
回复
因为$mysql是private属性, 只能在类的内部使用,因此在其他类中是不能引用的
  • 打赏
  • 举报
回复

 class login
{
	
	private $mysql;
	private $admin;
	public function __construct()
	{
		$this->mysql = 123;
		//$this->mysql=require_once(SERVER_ROOT.'/library/mysql.class.php');	
		//$this->admin=require_once(SERVER_ROOT.'/library/admin.class.php');
	}
	function __get($name){
	
	   echo $this->$name;
	}
}
class admin
{	

	public function __construct()
	{
       
	   
	}
	function myname(){
	  $a = new login; 
	  echo $a->mysql;
	
	}
}

$c = new admin;
echo $c->myname();

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧