Php返回多个参数
function callee() {
return array($content = "foo", $code = 200);
}
list($content, $code) = callee();
function callee() {
return array($content = "foo", $code = 200);
}
list($content, $code) = callee();
In product development, the Minimum Viable Product (MVP) is a strategy used for fast and quantitative market testing of a product or product feature, popularized by Eric Ries for web applications.
https://en.wikipedia.org/wiki/Minimum_viable_product
自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。
Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集。Traits 和类组合的语义是定义了一种方式来减少复杂性,避免传统多继承和混入类(Mixin)相关的典型问题。
Trait 和一个类相似,但仅仅旨在用细粒度和一致的方式来组合功能。Trait 不能通过它自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用类的成员不需要继承。
可以用此关键字实现多继承,类似Ruby中的Mixin
http://php.net/manual/zh/language.oop5.traits.php
HFS+(Mac文件系统)一般配置是大小写不敏感但大小写保留,意思是文件系统会认为foo
和FoO
是同一个文件,但当创建该文件时系统就记住哪个字母大写哪个小写
当格式化成HFS+格式时你可以指定文件系统是否大小写敏感。但如果你格式化成UFS(Unix FileSystem)的话将会永远是大小写敏感
检查你的磁盘格式是否大小写敏感
diskutil info <device>
例如
diskutil info /dev/disk0s2
Name (User Visible): Mac OS Extended (Journaled)
如果是Mac OS Extended (Case-sensitive, Journaled)
则表示大小写敏感,如果没有Case-sensitive
字样则仅仅是大小写保留非大小写敏感。
http://apple.stackexchange.com/questions/22297/is-bash-in-osx-case-insensitive
批量注释
ctrl+v
进入列编辑模式shift+i
,插入注释符,比如//
Esc
,就会全部注释了批量去掉注释
ctrl+v
,进入列编辑模式//
注释符号d
, 就会删除注释符号$ sudo vim /etc/ssh/sshd_config
修改
# 如果超过15秒后没有收到客户端的任何数据,sshd将通过安全通道向客户端发送一个"alive"消息,并等候应答,默认值0表示不发送
ClientAliveInterval 15
# sshd在未收到任何客户端回应前最多允许发送45个"alive"消息,默认值3
ClientAliveCountMax 45
重启sshd
$ sudo /etc/init.d/sshd restart
使用setcookie('name', '')
方式删除cookie时,PHP将cookie的值设置为deleted
,过期时间设置为一年前。如果用户本地时间为两年前,则该cookie没有被删除,而是将值设置为了deleted。
比较靠谱的删除cookie的方法为:
setcookie('name', 'deleted', 1, $path, $domain);
注意:在PHP5.2版本之前(包含5.2),cookie的值可以不是deleted,但是不能为空,否则,时间参数将不被参考。
curl -s http://i.wan.liebao.cn/ | head -1 |sed -n l
# 有BOM情况
\357\273\277{"data":{"uname":"jiangrongyong","s_face":"http:\/\/static.hdslb.com\/images\/member\/noface.gif"},"msg":"ok","code":1}
# 无BOM情况
{"data":{"uname":"jiangrongyong","s_face":"http:\/\/static.hdslb.com\/images\/member\/noface.gif"},"msg":"ok","code":1}
设置utf-8编码
:set fileencoding=utf-8
添加BOM
:set bomb
删除BOM
:set nobomb
检测是否有BOM
:set bomb?
grep -r -I -l $'^\xEF\xBB\xBF' $path
grep -r -I -l $'^\xEF\xBB\xBF' /path | xargs sed -i 's/^\xEF\xBB\xBF//;q'
最近介绍tmux的文章好多,虽然已久仰大名,今天试用了一下,果然是神器。没用过screen,直接跳级使用tmux。。
记录下常用操作
输入tmux
,进入tmux模式
tmux attach -t {session_name}
attach到某个session
tmux kill-session -t {session_name}
kill掉某个session
control + b
操作入口
"
pane水平切割
%
pane纵向切割
$
重命名session
d
detach tmux
1,1,2,3,5,8,13,21
依次类推下去,你会发现,它后一个数等于前面两个数的和。在这个数列中的数字,就被称为斐波那契数(Fibonacci Sequence)。
任何相邻的两个数,次第相除(如8/13,13/21),其比率都最为接近0.618
这个值,它的极限就是所谓的”黄金分割数”。
递推关系
f(1)=1
f(2)=1
f(n)=f(n-1)+f(n-2) //n>=2
3f(n)=f(n+2)+f(n-2)
用PHP打印斐波那契数
<?php
function fib($n) {
if($n <= 1) {
return $n;
}
return fib($n - 1) + fib($n - 2);
}
for($i = 0; $i < 9; $i++) {
echo fib($i) . ' ';
}
github source
https://github.com/jiangrongyong/algorithm
优化方案,加入缓存 Ruby
def fibonacci(n, cache=Hash[[[0,0],[1,1]]])
return cache[n] if cache[n]
cache[n] = fibonacci(n-2, cache) + fibonacci(n-1, cache)
end
puts (1...1000).to_a.collect{|t| fibonacci(t) }.join(', ')