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;
感觉如下:
浅拷贝只拷贝对象本身
深拷贝则拷贝对象中引用的对象,一直拷贝下去。
wordpress怎样添加注册功能?
一、添加注册表单 1、首先在当前主题的目录下新建一个php文件,命名为reg-page.php,然后将page.php中的所有代码复制到reg-page.php中; 2、删除reg-page.php开头的所有注释,即 /* 与 */ ,以及它们之间的所有内容; 3、搜索:the_content,可以查找到类似代码:,将这段代码替换成代码一(注意使用UTF-8编码另存为替换原来的reg-page.php) 二、添加表单处理代码 在reg-page.php开头处中,将第一个
opc项目怎么迁移?
企业备份服务器数据库的数据一般有四种方式: 数据库文件直接拷贝,如果不是频繁的读写长期占用,可以直接拷贝数据库目录源文件,另行保存一份即可。
数据库管理程序备份,比如phpmyadmin,有导出为.sql的备份文件格式,或者其他管理工具,都可以连接到数据库然后导出备份。
如果在本机操作,还可以使用脚本制定计划任务,定时执行脚本复制备份。 使用云备份系统,搭建云数据库云备份,全时间自动备份。
服务器linux环境运行php?
以centos7为例,模式为lnmp。(使用root用户登录)
更新阿里云yum源1、进入源目录
# cd /etc/
yum.repos.d/
2、备份原repo文件
# for name in `ls`; do mv $name ${name}.bak ; done
3、下载阿里云yum源
# curl
http://mirrors.aliyun.com/repo/Centos-7.repo > Centos-7.repo
4、清理并生成缓存并安装epel
nginx安装1、安装pcre,可以支持rewrite功能。
# yum install pcre*
2、安装openssl,可以支持ssl功能
# yum install openssl*
3、从官网下载稳定版,此时是1.16.1,然后解压(如果没有wget ,请执行yum install wget)
# cd /usr/local/src
# wget http://nginx.org/download/nginx-1.16.1.tar.gz
# tar -zxvf nginx-
1.16.1.tar.gz
# cd nginx-1.16.1
4、安装软件三板斧(./configure , make , make install)。
# ./configure --prefix=/usr/local/nginx-1.16.1 --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre
# make
# make install
5、centos7防火墙打开http, https
# firewall-cmd --zone=public --add-service=http --permanent
# firewall-cmd --zone=public --add-service=https --permanent
# firewall-cmd --reload
6、启动nginx
# /usr/local/nginx-1.16.1/sbin/nginx
当通过你系统的IP地址访问出现如下画面,则安装成功
关闭nginx:
# /usr/local/nginx-1.16.1/sbin/nginx -s stop
当改变了nginx.conf后,要重置:
# /usr/local/nginx-1.16.1/sbin/nginx -s reload
安装php和php-fpm1、安装php7,这里选择php70w,需更新webtatic源
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum install php70w
2、安装php扩展,这里以xml扩展示例,你也可以使用yum list php70w*查看所有扩展。
#yum install php70w-xml
3、查看安装结果
#php -v (查看版本)
#php -m (查看扩展)
4、安装php-fpm,(这个与nginx一起使用来解析PHP脚本的)
#yum install php70w-fpm
5、启动php-fpm,并加入开机启动
# systemctl start php-fpm
# systemctl enable php-fpm
6、新建www用户
# useradd www -s /sbin/nologin
7、修改nginx.conf,加入php解析
第2行
第45行
第65-71行改成如下图所示:
8、将html目录所有者改为www,并将权限改为755
# chown -Rf www:www /usr/local/nginx-1.16.1/html
# chmod -Rf 755 /usr/local/nginx-1.16.1/html
9、重启nginx看到如下结果,即配置成功
# /usr/local/nginx-1.16.1/sbin/nginx -s reload
怎么把所有网页设置在同一个页面?
方法一:
1、将 xx.html 修改为 page-xx.php 上传到你当前使用的主题目录中;2、在WordPress后台创建别名为 xx 的页面后发布,大功告成。
注意:创建的页面别名一定要与page-后面一样。或者在步骤1中将xx改为你的页面ID。
方法二:
1、将 xx.html 修改为page-template-xx.php 然后再该文件头部添加:
然后上传到你当前使用的主题目录中;2、在WordPress后台创建别名为 xx 的页面并选择页面模板为第一步中创建的 xx页面模板,然后发布,大功告成。
如果你添加的页面是首页,可以在 设置 > 阅读 > 首页显示 中设置将此页面设置为首页。
关于css、JS、图片等外部文件
如果你的页面有引用CSS、JS以及图片,例如:sample.css、sample.js、sample.jpg,可以将这些文件一并复制到主题目录下,然后引用地址改为:
如果有视频等,同上面方法。
如果你想了解更多:
2017.11.04 新增:
上面介绍了将WordPress转换为Page(页面)的方法,下面介绍转换为首页、分类、标签、文章等页面的方法:
front-page.php:这个文件是首页,如果没有则使用上面方法二中在后台设置为首页的页面;home.php:文档归档页面,通常1中都没有使用这个显示首页;index.php:1、2都没有使用这个显示首页;single.php:文章模板文件;404.php:404页面文件;page.php:页面模板文件,支持 page-$id (即页面 ID)或 page-$slug (即页面别名);category.php:分类归档模板文件,支持 category-$id 或category-$slug ;tag.php:标签归档模板文件,支持 category-$id 或category-$slug ;author.php:作者归档模板文件,支持 category-$id 或 category-$slug;date.php:日期归档模板文件;archive.php:如果主题没有7-10之中的任一文件,那么都会用此模板文件显示对应内容,当此模板文件也不存在时,则使用index.php显示,支持 archive-$id 或archive-$slug。header.php、footer.php、sidebar.php等文件一般都是“页面部分”模板文件,即:页眉、页脚、边栏。
如果你能看懂英文,详细可参考官方文档:
WordPress模板文件等级介绍(官方)
WordPress获取主题目录里的文件和目录