php实例化多个类

$db=newuser($serverName,$uid,$pwd,$database,$CharacterSet);mssql.class.phpuser.class.... $db = new user($serverName,$uid,$pwd,$database,$CharacterSet);
mssql.class.php
user.class.php
node.class.php (这个类本来在user.class.php中,可是user.class.php
太长了)
.....
我一直很困惑,把所有的方法都写到一个类中,实例化后调用没有问题,但是那样类太长,我想把一个大类拆分成多个小类,但是实例化又出现问题,想问问各位达人此类问题应该怎样处理。
展开
 我来答
百度网友d424b9e9
推荐于2016-09-13 · 超过19用户采纳过TA的回答
知道答主
回答量:199
采纳率:0%
帮助的人:37.2万
展开全部
给你举个例子吧:
比如说:现在有user.class.php
mysql.class.php
现在用户类有注册、登录等一系列的操作(要使用数据库类)
我们直接在user.class.php 中把数据库类给实力化了
这样就了可以达到你的那个效果了;
千万不要在将所有的方法放在一个类中,这样是不好做法,住好是一个类只对于他本身的方法;这样做的目的是让逻辑更加清晰,和降低服务器的资源消耗。
追问
我有个地方不清楚,就是我要拆分成很多类,每个类都要实例化(数据库类),那我在
user.class.php中要怎样实现,例如下面的代码,我要在哪里实例化数据库类?
追答
直接引入文件
采用new或是构造方法,就可以
hotniunai
2012-01-31 · 超过42用户采纳过TA的回答
知道答主
回答量:183
采纳率:0%
帮助的人:86万
展开全部
对于PHP来说一个类几千行的确使其程序可读性非常差。你可以把各种不同功能的类拆分开来,然后用include或者require函数把类包含进去就可以了,例如:DB类为一个类,里面有各种DB方法,USER类为一个类里面是对user的一些操作方法,然后你把这两个类包含进同一个PHP文件里面,里面不是同时有db类跟user类的方法了吗?这时把两个类实例化了之后就跟使用一个类一样了,如果你嫌麻烦一个一个包含进去的话,可以用function __autoload()这个魔术方法去加载,如果还嫌长或者麻烦,建议你了解下MVC的开发思想了。
更多追问追答
追问
include_once ("common/mssql.class.php");
include_once ("configs/mssql.php");
include_once ("common/user.class.php");
include_once ("common/node.class.php");
$db = new user($serverName,$uid,$pwd,$database,$CharacterSet);
我是想这么做,但是遇到了一个问题,那就是必须要new这个类才能使用,user类和node类都继承了mssql类,不知道实例化这儿要怎么处理。
追答
如果是我,我会用function __autoload()这个方法去处理,建议你去了解下 __autoload()这个魔术方法,自动加载类然后自动实例化。PHP手册对这个方法有详细介绍,你仔细看完就能弄明白了,如果还不明白我写个例子给你看吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2e1b7a0
2012-02-01
知道小有建树答主
回答量:93
采纳率:0%
帮助的人:78万
展开全部
你拆开之后有问题,估计是因为之前的类内部方法之间互有调用,你得先看懂这个类中方法的一些关系,再做开分!
追问
拆分的两个类都继承了mssql类(DB类),你说的类在哪里?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欢欢闲谈
2012-01-31 · 超过62用户采纳过TA的回答
知道小有建树答主
回答量:474
采纳率:0%
帮助的人:210万
展开全部
如果能处理成一个类就用一个类呗,长点有什么关系,调用不出问题就行了,为什么要拆分啊
追问
要几千行啊!就是感觉太长了!!调用是没什么问题!
追答
一个类几千行是很正常的好不好,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式