泪中求oop 展示策略

php中文网
发布: 2016-06-13 12:58:00
原创
888人浏览过

泪中求oop 显示策略
1.基本情况
oop写的conn连接mysql的类,系统中所有用到数据库的类来extends它。
此类部分内容见下:

<br />
class db{<br />
	public $conn;<br />
    private static $h = "localhost";<br />
    private static $u = "root";<br />
    private static $p = "123123";<br />
    public $db = "wms";//此外是变化的,换句说wms不是固定的,是变化的。user1登录时,$db="user1";user2登录时,$db="user2";<br />
登录后复制

2.
因为$db是变化的,不是固定的。我一开始用$db=$_SESSION['user']但是类中不能用session.
请问如何实现呢?
3.
此法子除外。
$obj=new db($db);//通过析构函数。此法子不能用。因为其他原因,反正不能使用。
------解决方案--------------------
1.这样完成继承链接类
require_once 'db.php';<br />
class userDao extends db{}
登录后复制

2.①最好不要这样设计数据库,后面拓展和维护起来很复杂,LZ需要考虑到不同的情况,最好从多个表,或者多个字段下手。
②session的值想传到类中处理,先经过PHP处理页面(我们一般叫他控制层),用访问类方法的方式传。
比如:user1登录后 处理页面标记为1 在访问数据库前 把1传入类 好让他知道调用哪个数据库 不过还是建议不要把数据库设计得太复杂
3.LZ为什么要在析构函数中实例化对象呢?一般析构函数是用来销毁对象,释放空间的。LZ要初始化对象的话,应该是在构造函数中做的。
__construct()
  
------解决方案--------------------
为什么反正不能用构造函数…………
------解决方案--------------------
不是说了么


自己写个init函数传值
$db = new mydb();
$db->init($dbname);
------解决方案--------------------
1 男子汉,大丈夫, 不要动辄眼泪~
2 对这些问题,做为学习研究,无可厚非,真到产品项目开发,没有深厚的功力之前,建议先从使用框架开始。
而框架里面,通常对 db 类会有良好的封装,你也不用去折腾太多了。
------解决方案--------------------
$obj = new db();
$obj->db = $_SESSION['user'];

既然是 public 属性,直接赋值就是了

------解决方案--------------------
自己写个init函数传值
$db = new mydb();
$db->init($dbname); 
s

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号