简单明了的掌握diff命令? 参考: http://www.ruanyifeng.com/blog/2012/08/how_to_read_diff.html

diff是比较两个 文本文件, 或目录,(中名字相同的文件)
diff 是按行来比较的, 只要两个对应的行, 不完全一致, 就报告为不同, 否则就视为相同. (一行中任意一点的不同...)

检查时, 指定选项:(只要有这三个)
-b或--ignore-space-change  不检查空格字符的不同。
-B或--ignore-blank-lines  不检查空白行。
-i --ignore-case : 检查时,忽略大小写
-w 忽略全部的空格字符

主要有 四种比较显示 方式

第一. 是普通 的显示方式 --normal 这是默认的 (相同的行不显示, 只显示不同的行...)
第二. 是 并排显示的 : -y, -W 80

而显示报告不同的 情形 无非只有 三种:
一是 两行比较时, 有不同, 二是 前面的文件比后面的文件对应的行要多, 三是 前面的文件比后面的文件 行要 少.
所以 :

普通显示时: 有 三个符号 : 用 c表示 不同, 即: change, 有变化; a表示 add, 即前面的文件file1 比 后面的文件file2 多一行到n行; d表示delete, 即前面的比后面的要少.

并排比较时, 也有三种对应的符号: | 表示change, < 表示add, > 表示 delete ....

第三, 是 上下文输出显示方式, 即, 先输出第一个文件的连续行, 然后输出 第二个文件的 连续行(不同的地方), 所以叫上下文. (这个是 加州大写伯克利分校推出BSD版本时 觉得默认格式
太简单了, 需要加入显示上下文的信息, 更详细了解变化情况.

格式是: diff old new -c: -c 表示 context 上下文. 输出方式; 或者叫(前后 输出 方式) (每一行的行首 标记位: ! 标识不同, - 标识这一行被删除, +标识这一行新增的)

第四, 是统一 /合并 输出方式 -u表示 unified. unified. 即 将 两个文件相同的行只 显示一次, 而不同的行 前后一行挨着显示.
diff old new -u

第3, 4 种方式, 总是 先生成 两个文件的 说明信息, 标识 符号 用 +++ --------- *** 来标识...


要理解diff, 就要理解diff产生的背景和作用, 他是unix 用来进行代码管理的基石. 是通过比较 版本变化前后的文件的区别, 来生成patch补丁文件, 进行版本控制和复原的.

格式是: diff <version1, 版本变化前的文件> ( version2, 版本变化后的文件) > patchfile.

即;:: 通过 diff 得到 补丁文件 patchfile

然后 根据 file1 和 patchfile 来 将 file1, 打补丁到file2: patch file1 patchfile

或者通过 file2 和patchfile 来回复到file1: patch -R file2 patchfile.
格式 总是 :patch [ oldfile | -R newfile] patchfile

通常 用 ----- 或 **** 表示 变动 前的版本, 而 +++ 表示 变动后的 版本....

git格式的 diff: 默认使用的是 unified 格式的显示(unified 主要用于 相差很小 高度相似的 两个文件....!!!

diff --git a/f1 b/f2....

....

php的 接口中的函数, 不必使用 abstract. 直接 使用: public function 就可以了, 不必加abstract.

interface IFoo{
    public function f1(...);
    public function f2(...);
}

接口既可以被 普通类 来 实现implements, 也可以被 其他接口 来继承 extens.

也就是说 一个类要 实现多个接口, 有两种方式, 一种是直接实现 多个接口 : class c implements a , b {..}, 另一种是, 先让接口多个 逐渐多层次的 继承, 然后让普通类 只实现最后的 接口: interface b extends a {} , interface c extends b {...}, class d implements c{...}.

实现接口的普通类 本身 是可以包含 其他 成员变量 , 和其他普通方法的...

php中的常量 一是不能用 $ 符号; 二是要用 const 来 限制, 比如: const Pi=3.14; 类里面也可以定义 常量成员: class Foo {const Pi = 3.14} 引用时 Foo::Pi

原文地址:https://www.cnblogs.com/bkylee/p/7811503.html