php怎么导出网页,PHP对象的浅复制与深复制的实例详解?
原型模式
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
原型模式是基于深复制和浅复制的,在Java里面有2种复制:
浅复制
将一个对象复制之后,生成一个新的对象,新对象的所有成员变量(基本类型或引用类型)都含有与原
有对象相同的值,如果原有对象的成员变量是基本数据类型,就会将这个变量的值拷贝一份到新对象
里面,如果原有对象的成员变量是引用数据类型,那么这个引用指向的对象不会新生成一份,而是,
在新对象里面的这个引用跟原有对象的引用指向的是同一个对象。
深复制
将一个对象复制之后,生成一个新的对象,新对象的基本数据类型变量含有与原有对象相同的值,如
果原有对象的成员变量是引用数据类型,在新对象里面,这些引用变量将指向被复制过的新对象,而
不再是指向原有的那些被引用的对象,深复制把要复制的对象所引用的对象都复制一遍。
比如:
有一个A对象,经过复制之后产生一个B对象,如果A里面有一个int型的变量i值为4,那么B对象里面
的inti的值也是4,A对这个int型变量的改变,不会影响B,如果A里面有一个成员变量c是引用类型
的,它指向了对象D,经过复制,B里面也会有一个c,这个c也指向D对象,A的c和B的c指向的是同一个
对象D,这就是浅复制。如果是深复制,A里面的c指向一个D对象,对于B里面的c会指向一个新的对象
,他们指向的不是同一个对象,这样,在原有对象里面对成员变量c指向的对象D做的任何改变,不会
影响新对象。
举个最简单的例子:
classA{
publicinti;
publicintj;
}
Aa=newA();
浅拷贝:
Aa1=a;
深拷贝:
Aa1=newA();
a1.i=a.i;
a1.j=a.j;
感觉如下:
浅拷贝只拷贝对象本身
深拷贝则拷贝对象中引用的对象,一直拷贝下去。
导出的文件报无法读取的内容错误?
用PHPExcel要注意缓存目录的权限和使用内存的控制(超过PHP可用内存会出错),否则出错了生成的文件就有问题。
另外还要注意PHP的Notice等信息的输出,不要影响到正常内容输出。可以用记事本打开生成的文件看看内容是否正常。phpcms安装在二级目录下如何在根目录取得用户登录信息?
修改include里面的config.inc.php和data里面的config.js将cookie感化路径设置成根目次(貌似默认就是,假如不是修悛改后请退出上岸后从新上岸)然后就可以了你看看phpcms临盆的首页HTML你将index.html 拷贝到根目次就行了留意JS路径要改精确
如何用php访问sqlserver?
一、环境php5.2.5sqlserver2008win7二、配置PHP1、打开php.in将extension=php_mssql.dll的注释符号去掉。2、打开php.in将mssql.secure_connection = Off改为on。3、从5.2开始,php就不再提供mssql.dll了,所以要php连接sql server 2005/2008/2012必须要使用微软提供的sql server for php 2.0/3.0 这个文件可以上微软官网下载(SQLSRV20.EXE/SQLSRV30.EXE),然后执行到wamp\php\ext文件夹下打开php.ini文件 在Extensions后面加上:extension=php_sqlsrv_53_ts.dllextension=php_pdo_sqlsrv_53_ts.dll注:52代表php5.2 假如是php5.3就拷贝php_sqlsrv_53_ts_vc6.dll 关于VC6和VC9的区别 VC6 版本是使用 Visual Studio 6 编译器编译的,如果你是在windows下使用Apache+PHP的,请选择VC6版本。 VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你是在windows下使用IIS+PHP的,请选择VC9版本。以上步骤完成后需要重启apache。
PHP中引用和拷贝有什么区别?
就是复制文件、建立快捷方式的区别, 克隆就是复制,引用就是快捷方式,引用的对象实际上是同一个东西,修改任何一个变量,另外一个也会跟着变化。