php foreach 使用引用注意事项

前言

看过PHP相关书籍的都会了解到PHP有个这样的特性:写时复制。所以在用foreach时,需要对数据做修改的时候,都会复制数据,如果数据很大,那么就会带来一定的内存消耗,所以为了避免这种复制操作,就用到了引用,下面就介绍下引用的坑

问题案例

<?php
    $arr = array(4, 5, 6);
    var_dump($arr);

    foreach ($arr as &$v) {
        //do something here
    }

    foreach ($arr as $v) {
        //do something here
    }
    var_dump($arr);
?>

输出为:

array(3) {
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  int(6)
}
array(3) {
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  &int(5)
}

TortoiseSVN客户端实用技巧总结(待更新)

前言

平时开发工作,需要实用版本管理软件SVN,这里我记录了一些非常实用的技巧,希望这样能够让自己在忘记的时候回顾一下,如果想在centos上搭建一个svn服务器可以参考我以前的文章:CentOS SVN服务器安装配置

1.Revert changes from this revision

场景:假如有个文件test.php,有十个版本,假定show log有:1,2,3,4,5,6,7,8,9,10这么多个版本

1) 如果是在版本6这里点击“Revert changes from this revision”,表示版本6这个历史事件被抹杀了,只剩下除版本6外的9个历史事件了。

2) 如果同时选择了6,7,8三个历史时期并点击“Revert changes from this revision”,表示抹杀6~8这仨历史时期。

分析:如果同时选择7~10,然后点击“Revert changes from this revision”,则效果跟在版本6这里点击“Revert to this revision”是一样的。

win7安装wampserver过程中解决缺少msvcr110.dll的方法

前言

前几日入职第一天,为了快速搭建本地PHP开发环境,想用集成安装包(apache+PHP+mysql),后来询问同事有没有局域网共享软件目录,因为公司外网权限有限制,很多网站不可以上,包括各类网盘,后来同事给了个wampserver,然后我就安装了,在安装即将结束的时候就出现了系统缺少:msvcr110.dll

解决方法

在网上搜索发现需要下载微软的Visual C++ Redistributable for Visual Studio 2012 Update 4安装包,安装之后再安装wamp即可

先从微软下载Visual C++ Redistributable for Visual Studio 2012 Update 4,分32位和64位版本,根据自己的操作系统版本选择下载和安装。

下载地址: http://www.microsoft.com/en-us/download/details.aspx?id=30679

开发者GIT常用命令(二)

前言

今天继续整理自己的书签,对于开发者而言,版本管理工具是必不可少的,这里我要说的就是git,在我之前一篇git常用命令就已经对git有了一些介绍,这一篇我继续来整理一下,所谓温故而知新。

个人开发者(单独开发)

单独的个人开发者不会与他人交换修补程序,只用到下列命令,独自在单独的代码库上工作:

git-init(1)用来创建新代码库。
git-show-branch(1)用来查看你在哪里。
git-log(1)查看发生过什么。
git-checkout(1)和git-branch(1)用来切换分支。
git-add(1)用来管理索引文件。
git-diff(1)和git-status(1)查看你正在做什么。
git-commit(1)将内容推进现分支
git-reset(1)和git-checkout(1)(带路径名 参数)放弃修改。
git-merge(1)用来合并本地分支
git-rebase(1)用来维护主题分支
git-tag(1)用来给已知点打标签

PHP代码库、使用代码片段整理(2016-04-15更新)

前言

今天闲来无事,看了下自己的浏览器书签,看了以前收藏的一些PHP常用代码片段,想想把这些整理一下,也方便以后利用,说不准哪天就用上了,省得再去自己写,这些一来可以节省时间,二来可以巩固知识,可谓一举两得。

目录索引

1. PHP数组生成 CSV 文件 2. 清除对数据库的恶意代码输入 3. 解压文件Unzip

4. 从网页提取关键字 5. 检查服务器是否是 HTTPS 6. 在任意网页显示源代码

7. 创建数据的URI 8. 取得一个页面中的所有链接 9. 让网页标题变得对搜索引擎更友好

10. 下载和保存远程图片在你的服务器中 11. 验证邮箱、url、数字 12. 自动转化URL为可点击的链接

13. 去除微软word生成的大量标签 14. 检测浏览器语言 15. 显示facebook的好友

16. PHP可阅读随机字符串 17. PHP生成一个随机字符串 18. PHP编码电子邮件地址

19. PHP列出目录内容 20. PHP销毁目录 21. PHP解析 JSON 数据

22. PHP创建日志缩略名 23. PHP获取客户端真实 IP 地址 24. PHP强制性文件下载

25. PHP寻找两个字符串的相似性 26. PHP在应用程序中使用 Gravatar 通用头像 27. PHP在字符断点处截断文字

28. PHP为 URL 地址预设 http 字符串 29. PHP调整图像尺寸 30. PHP检测 ajax 请求