霜天部落 | 关注LAMP高性能、高并发架构的设计与研究

在 Linux 中如何删除文件中的空行

有时你可能需要在 Linux 中删除某个文件中的空行。如果是的,你可以使用下面方法中的其中一个。有很多方法可以做到,但我在这里只是列举一些简单的方法。

你可能已经知道 grep、awk 和 sed 命令是专门用来处理文本数据的工具。

这些属于高级命令,它们可用在大多数 shell 脚本中执行所需的操作。

下列 5 种方法可以做到。

  • sed:过滤和替换文本的流编辑器。
  • grep:输出匹配到的行。
  • cat:合并文件并打印内容到标准输出。
  • tr:替换或删除字符。
  • awk:awk 工具用于执行 awk 语言编写的程序,专门用于文本处理。
  • perl:Perl 是一种用于处理文本的编程语言。

我创建了一个 2daygeek.txt 文件来测试这些命令。下面是文件的内容。

$ cat 2daygeek.txt
2daygeek.com is a best Linux blog to learn Linux.

It's FIVE years old blog.

This website is maintained by Magesh M, it's licensed under CC BY-NC 4.0.

He got two GIRL babys.

Her names are Tanisha & Renusha.

现在一切就绪,我们准备开始用多种方法来验证。

一、使用 sed 命令

sed 是一个流编辑器 stream editor。流编辑器是用来编辑输入流(文件或管道)中的文本的。

$ sed '/^$/d' 2daygeek.txt

以下是命令展开的细节:

sed: 该命令本身。

//: 标记匹配范围。

^: 匹配字符串开头。

$: 匹配字符串结尾。

d: 删除匹配的字符串。

2daygeek.txt: 源文件名。

二、使用 grep 命令

grep 可以通过正则表达式在文件中搜索。该表达式可以是一行或多行空行分割的字符,grep 会打印所有匹配的内容。

$ grep . 2daygeek.txt
or
$ grep -Ev "^$" 2daygeek.txt
or
$ grep -v -e '^$' 2daygeek.txt

以下是命令展开的细节:

grep: 该命令本身。

.: 替换任意字符。

^: 匹配字符串开头。

$: 匹配字符串结尾。

E: 使用扩展正则匹配模式。

e: 使用常规正则匹配模式。

v: 反向匹配。

2daygeek.txt: 源文件名。

三、使用 awk 命令

awk 可以执行使用 awk 语言写的脚本,大多是专用于处理文本的。awk 脚本是一系列 awk 命令和正则的组合。

$ awk NF 2daygeek.txt
or
$ awk '!/^$/' 2daygeek.txt
or
$ awk '/./' 2daygeek.txt

以下是命令展开的细节:

awk: 该命令本身。

//: 标记匹配范围。

^: 匹配字符串开头。

$: 匹配字符串结尾。

.: 匹配任意字符。

!: 删除匹配的字符串。

2daygeek.txt: 源文件名。

四、用 cat 和 tr 命令 组合

cat 是串联(拼接)concatenate的简写。经常用于在 Linux 中读取一个文件的内容。cat 是在类 Unix 系统中使用频率最高的命令之一。它提供了常用的三个处理文本文件的功能:显示文件内容、将多个文件拼接成一个,以及创建一个新文件。

tr 可以将标准输入中的字符转换,压缩或删除,然后重定向到标准输出。

$ cat 2daygeek.txt | tr -s '\n'

以下是命令展开的细节:

cat: cat 命令本身。

tr: tr 命令本身。

|: 管道符号。它可以将前面的命令的标准输出作为下一个命令的标准输入。

s: 替换标数据集中任意多个重复字符为一个。

\n: 添加一个新的换行。

2daygeek.txt: 源文件名。

五、使用 perl 命令

Perl 表示实用的提取和报告语言Practical Extraction and Reporting Language。Perl 在初期被设计为一个专用于文本处理的编程语言,现在已扩展应用到 Linux 系统管理,网络编程和网站开发等多个领域。

$ perl -ne 'print if /\S/' 2daygeek.txt

以下是命令展开的细节:

perl: perl 命令。

n: 逐行读入数据。

e: 执行某个命令。

print: 打印信息。

if: if 条件分支。

//: 标记匹配范围。

\S: 匹配任意非空白字符。

2daygeek.txt: 源文件名。

干货传授:股票定价与估值的技巧

关于估值

我们永远无法精确地为股市或某只股票计算价格,但是模糊地计算一下,还是可以的。

最近老是有朋友问我:你是如何给股市估值的,又是如何给某只具体的股票定价的呢?

说实在的,这个话题是一个很大的话题。

大到什么程度呢?

大到自股市成立以来,无数仁人志士抛头颅洒热血争来吵去也没弄明白。更有一批爱吊书袋、对自然基础科学有特殊癖好的人,撅着腚研究了一辈子公式,把微积分不定积分划算得滚瓜烂熟了,但对股市也没计算出个所以然来。

众所周知的大科学家牛顿同志,在炒股失败之后,也不得不喟然长叹:我计算得出天体运行的轨迹,但我计算不出人类的疯狂。

所以,股市是一个人的市场,是一个资本的集合,中间固然有基本的价值规律在潜移默化间运行,但人性、人情、人的心理却也在其间发挥着重要的、不可替代的影响。

如果世上真有一道放之四海而皆准、能够一劳永逸的公式应用于股市,巴菲特还能是巴菲特吗?甚至股市,还能是股市吗?

但是,讲到这里,我们得打住,我需要特别说明、格外强调一下——以上所述,并不是意味着我反对给股票价格寻找计算公式。

我想表达的意思是:我们永远无法精确地为股市或某只股票计算价格,但是模糊地计算一下,还是可以的。

看到这里又有朋友钻针眼里挑刺啦:你又废话,说这么多,一会儿能计算一会儿又不能计算的,有什么意思,好玩是吧?你这不是抠字眼吗?

一是我今天很累,二是我又不是说相声的,我可没有心情到这里浪费这么大精力来逗你玩。

我说这么多,是有原因的。

既然你这般愚笨,那好,我就挑明了说:我是想告诉你,想以精确的态度来计算和看待股市,你永远都不会正确。既然人性的心理影响和夸大着股市的涨跌,那么我们只能以模糊的态度来泰然处之。

若你不能接受这一点,那么我们将驴头不对马嘴。我对你无话可说。请你马上离开这里。我继续给能接受这个观点的人解说。

我一直有个观点,投资股票不是一件复杂的事情,我们完全没有必要把原本简单的东西搞得过于复杂。

尤其是对于我们这些小散户而言,与机构、大户相比,没有那么大的财力,没有那么大的人力,没有那么大的渠道,我们再想着和他们一样玩精确的艺术,那不是异想天开吗?

所以我一直强调,计算股市的公式,不能超过小学生的水平。在我眼中,一切超过小学生计算能力的股市计算公式,都是假大空。在我这里是要一律扫地出门的(学历低,只好这样强词夺理了哈,高学历者也可就此避让了啊)!

我以前曾写过几个长帖,一再反驳股市赌场论。当时就有很多股友向我征询,股市是不是赌场这个问题重要吗?它是不是赌场跟我们有什么关系?

我告诉你这个问题的关系,可大了,一方面它决定着我们如何看待市场问题,这对我们的价值取向、交易心理都有着决定性的影响;另一方面,它也跟我们今天所要谈的股市价值、股票价格有着决定性的影响。

若你把股市当成了赌场,那么我们就可以认为,股市是没有价值的,也是没有价格可以估算的。把购买一只股票当成一次赌博下注行为,那么我们购买的这只股票也是没有价值没有价格的。

赌场就是这样,你赢了你就得到了一切,你输了你就什么也没有了。

要么得到一切,要么失去一切,这样的行为,怎么估值,怎么定价?

取它们的中间值吗?

所以只有你把买卖股票当成一种投资行为,股市的价值、股票的价格,我们才能从头谈起。

以上部分,是授道。下面,我们开始传技。

好了,我们大家都认识到买卖股票是一种投资行为,那么,我们进一步地探讨一下,投资是怎样进行的、投资中的资本又具有哪些天然的属性呢?

我是农村孩子出身,我就以农村人常做的事情,做一个简单形象的举例和说明:假如说,第一年,你种了一亩玉米,你邻居种了一亩大豆,都一样辛苦地锄草、间苗、施肥,秋收后,你发现自己收入500块钱,而你邻居居然收入了1000块钱。那么,你下一年会怎么办呢?

我想,只要不憨的话,你的理性选择将是改种大豆,而你的邻居,也将继续种豆。所以第二年结果是什么呢?

大豆多了,价格下降,于是你挣了750块钱,你邻居也挣了750块钱。对于你来说,你的利润增加了,对于你邻居来说,他的利润降低了——但花一样的代价之后,你们的收益一样了。

站在市场的角度来看,市场平衡了。

所以,投资就是这样进行的:付出一定的成本(资本),得到一定的收益(利润)。

而资本的属性又是怎样的呢?

书本上讲了很多,我只强调一条:来自于不同行业的资本,总是具有一种天然的寻找公平的本能。

这话有点学究的味道,不理解的话,目光朝上移三行,看看那个种豆、种玉米的举例。我想,你一定明白我的意思了。

投资于股市的资本也是资本。既然是资本,它就具有资本的一切属性。当它在股市里的收益率低于社会上的资本时,股市的资本就会流出股市。这个时候的股市当然就表现得低落、不振。而当股市里的收益率高于社会上的资本时,社会资本便会向着股市的方向蜂拥而入。这个时候的股市当然就会表现得喧嚷、高涨。

低落就是熊市。高涨就是牛市。

那么这种资本的流入或流出,什么时候会结束呢?完美的、绝对理性的、不带一丝一毫偏差的答案应是:当股市内外的资本收益率完全一致的时候。

全社会的资本收益率是什么呢?就是利率。具体说点,就是银行利率。

也就是说,从总体上、长周期上看,股市的收益率和银行的利率水平在理论上应是相等的。这一点很重要,这是我们对股市进行估值的基础。

在进一步探讨前,我们先记住一个公式:利率=收益/资本

那么,股市的估值衡量指票都有哪些呢?有市盈率,有市净率,当然,还有其他很多。我们这里只讲市盈率。

股市的市盈率是怎样计算的呢?大家都耳熟能详的公式:市盈率=股价/收益 这个公式,计算单只股票时很好计算,因为每股股价和每股收益是确定的。计算股市总体市盈率,也很好计算,因为股市总市值和股市总收益也是确定的。

但是这样的计算,毕竟只是对现实股市、股票价格的反应。而我们需要讨论的是,超越现实的市盈率,如何给股市和股票确定一个合理的标准的市盈率,用现实的与标准的相对照,从而对比出现实的价格到底是低估还是高估。

这样的计算和对比,才是我们今天所需要的。

而这就是我刚才绕了那么大舌头给你唠道股市投资、投市资本的原因——当我们引入资本和收益的概念时,股市的总体市盈率公式则可以做出如下变化:市盈率=资本/收益。

这个不难理解吧?大家对照一下这个公式和上边利率的公式有什么异同?——我听到了,有同学在交头结耳,小声议论。

对了,二者,是一种倒数关系。有同学答对了。倒数是小学五年级的知识。

股市整体市盈率=1/利率。

但是,看到这个公式,又会有一些半瓶子醋的同学举手提意见了:老师,这个公式早就有了,是你发明的吗?

同学,我告诉你,你又急了:我说过这个公式是我发明的吗?我现在只是在给你讲授知识——很多新来的同学,虽然也有可能知道这个公式,但他不知道这个公式到底是怎么推导来的。

我有责任,有义务,给他们详细讲解——只有详细讲解,他们才能对我下边要讲的东西理解透彻、记忆深刻。

别打断我,我接着讲——我告诉你,我没有自己的东西,光拾人牙慧,敢在这里显摆吗?你急个屁呀你?

当我们想计算一下合理的股市市盈率,到底应该怎么计算呢——关键的一点,倒数下的分母,也就是这个利率怎么确定呢?

通用的方式,不用计算,就选用国家公布的银行一年期定期存款利率。比如说,前几年,银行一年期存款利率最高接近4%——就以4%计算吧,当时的股市合理市盈率是多少呢?1/4%=25。

也就是说,前几年,在国家一年期银行存款利率在4%左右时,股市的合理市盈率大约在25倍左右。

但是当时股市现实中的市盈率是多少呢?最低的时候,是11、12倍左右。

所以,当时,明显是低估的。这就是我当时在大盘极度低落时敢于投资股市的原因。那么,现在银行一年期存款利率是多少呢?2%左右。

如此计算,大盘的合理市盈率是多少呢?大约50倍左右。天,如果这样计算,现在沪市总体市盈率才20倍左右,要涨到50倍,那不还早着吗?

而且,按照现在的经济形势,整体利率水平还会下降——有些发达国家,已经是零利率了。那要是这样计算,股市的合理市盈率不是无穷大了吗?

可能吗?股市能不受限制地永远地涨下去?所以,这就说明,我们选用一年期银行存款利率作为计算股市合理市盈率的标准,是有缺陷的。

问题又出在哪呢?

如刚才上文中在推导市盈率和社会资本利率的关系时,我们所强调的:那个倒数的分母,也就是那个利率,是全社会资本的总体利率。

我们为了计算的方便,把它简单地归结成了银行的存款利率。

银行的存款利率是衡量社会总资本利率的一个指标,但不是唯一指标:至少,还有贷款利率来。

一般而言,相同期限的存款利率,一定会小于贷款利率——这样银行才能赚钱。

所以,在估算股市总体的合理市盈率时,当我们选用存款利率时,这个合理的市盈率会大一些,而当我们选用贷款利率时,这个合理的市盈率又会小一些。

我认为,应当将二者加一块,平均一下,取平均值计算,才更合理一点。

所以,再以当年银行一年期存款利率为4%时为例,当时银行后一年期贷款利率是多少呢?6%多一点。为了计算方便,我们干脆就以6%算吧。

那么我的计算就是:(4%+6%)/2=5%,则合理市盈率=1/5%=20

所以20倍,就是当时我给股市的总体估值。

那么选取4%与6%作为计算标准又会是什么样的结果呢?选4%时,市盈率是25倍;选6%时,市盈率大约是16倍。这两个数据有什么意义吗?

当股市现实中的市盈率是低于16倍的时候,我认为,是明显低估的;当高于25倍的时候,是明显高估的。当达到20倍的时候,是合理的。

当低估的时候,我们应大胆的入市,当高估的时候,我们应当尽量远离股市。

现在进入实战:以上述理论,看看在当前利率水平下,合理的股市市盈率是多少。

现在一年期存款利率是2.25%,据此算,合理的市盈率大约是:44.4倍。现在一年期贷款利率是5.10%,据此算,合理的市盈率大约是:1.96倍。取二者平均值3.675%,则合理市盈率是:27.2倍。

也就是说在当前利率水平下,股市在27.2倍左右时才是最合理的,当低于19.6倍时,是明显低估的,当高于44.4倍时,则是高估的。

以此标准,大家可以自行比较一下沪市、深市以及神板,目前都处于什么水平。

当然,在推算股市到底能涨到多少点时,我们不要像李大霄同志那样死守中值,一定要记住我给您讲过的钟摆理论。也就是说,得结合趋势,再作判断。

比如,现在是从熊市往牛市走的,当大盘达到27.2倍时,会不会就是到顶了呢?

不会,指数一定会越过这个数字,往44.4倍方向赶去。在我眼里,只有越过44.4倍时,股市才是越过了合理的投机阶段,而进入了疯狂的投机。这个时候,作为投资者,是应该理性退出的。假设利率水平不变的话,沪市大盘若要达到44.4倍的市盈率水平,对应的点数大约是9000多点。这跟我上一篇长帖中用其他方式所作的推断,是不是又高度重合了呢?

科学的推算方法总是殊途而同归——这就是我们现在勇于持股的力量之源(当然,我只是说沪指,而不是指神板,神板的问题,不是我一个凡人所能解决的,为免拍砖,不谈)。

下面,再谈谈我是如何给个股估值、定价的。

投资于个股的资本也是资本。既然如此,理论上讲,投资于个股的资本的收益率,也应该与社会资本利率持平。只有这样,才会有人投资于个股。而投资于个股的资本的收益率,就是个股的分红率。

因为我们个人不能像银行那样放贷(别抬杠,高利贷不算),所以在确定社会资本利率时,我们别无选择,只有选一年期银行存款利率作为标准。

下面我就举个例子,来演示我是如何用分红率和银行存款利率来给个股估值、定价的。

——前两天,有网友问我:你以前在帖子中多次讲到,你认为雅戈尔的合理价格在每股20—25元间,你是如何计算出来的?

我当时的回答:我蒙的!其实,我能是蒙的吗?现在,我就以雅戈尔为例进行一番演示:

当年雅戈尔股价在5、6块钱上下沉浮时沉浮时,一股分红大约是5毛钱,分红率竟然高达10%左右。而当时一年期存款利率是多少呢?3%不到。也就是说,分红率竟然是银行的3-4倍。那么雅戈尔股价到多少,分红率才能降到跟银行利率相当呢?就是20块左右。

考虑到,雅戈尔持有大量的股权投资,而这些投资在牛市中是会水涨船高的,所以我又给了它一点合理的溢价,就到25元吧(应该说,这还是一个相对保守的数字)。

后来,我在网上看到有一些朋友用其他方法也测算出小雅的合理价格在25元左右,真有一种英雄所见略同的感觉。

而那些朋友是怎么算出来的呢?

扒雅戈尔历年年报、季报,然后撅着腚算几个星期(没有几个年的工夫,有些数据是搜集不来的),最后得出的结论竟然跟我用一分钟时间算出来的数据完全一致!想到这,我就得意非凡。

当然,自我吹嘘一番后,我还得再解释一个网友感兴趣的问题:雅戈尔到了20元之后,我怎么还没有抛掉呢?

我以前说过了,我把投资分成三个阶段:价值投资阶段,合理的投机阶段,疯狂的投机阶段。这也是符合钟摆理论的。

现在雅戈尔虽然已过我的价值投资阶段(若以25元计,还没有越过,但马上就要越过了),但才刚到合理的投机阶段呢。不过40,是不能算疯狂的。这一段时光,这一段肥美的鱼身,我怎么舍得丢掉呢?

股市的估值,股票的定价,在我这儿,就是这么简单。

扒下A股底裤的33句格言

1、A股市场真理:下跌是下跌的最好理由,上涨是上涨的最好理由。其他任何唧唧歪歪的下跌、上涨理由都得服从这个真理。

2、最可靠的利多消息是几乎没有人看多。

3、自认为看懂市场的时候是风险最大的时候;知道风控重要的时候是风险相对较小的时候;肯坚持时考验才刚刚开始。

4、秋天流行的多是春天的故事。

5、趋势一旦形成就很难逆转,但趋势一旦真正逆转就难再回头。

6、别人给你推荐股票你要买那个你最不敢买的那个。

7、A股炒的是国人的人性,炒的是国人人性的价值。

8、好心情是一时的,好心态是一辈子的;好心态是投资成功的因,也是投资成功的果。

9、你能承担愿意承担的风险再大也不是风险,你不能承担不愿意承担的风险再小也是风险。

10、什么叫好心态?不是盲目的好心情,而是一切主要矛盾尽在掌握的淡定,市场今天发生的事是你昨天前天的思考,你就不会手忙脚乱,别指望可以战胜市场,战胜那些手忙脚乱的就足够了。

11、A股这个丛林永远遵循弱肉强食的森林法则,羊吃草,狼吃羊,春夏种草养羊,秋冬割草杀羊。

12、在A股这个生态体系中,散户是生物链的最末端,是金字塔的底层,是决定A股商业模式的基石,A股目前主要的赢利模式是源于有一个强大的散户投资群体。

13、典型的亏钱思维:1、和老板斗气(股市老板是国家);2、跟上司抢功(股市中上司是老师);3、只听自己愿意接受的信息;4、感情用事;5、只要鱼不要渔。

14、真正的风控能力:指的是投资股市能够保持一个让自己心态不变坏的“趋势判断、仓位配置及个股选择的能力”。

15、马步不稳,纵然身怀绝技也是枉然;好的武功招数是身体的自然反应。

16、股市投资,与跳舞异曲同工,踏准节奏舞姿自然优美……脚下乱了,就必须停下来等下一曲。

17、交易是件必须认真对待的事,不交易是交易的最高境界。

18、能忍则忍必死无疑,忍无可忍再忍两天。(意思是千万不要心存侥幸容忍把自己逼入绝境的事情发生,但如果因无知或侥幸已经陷入了绝境,那再恐慌已没有意义,此刻惟有耐心应对,坚持到底就是胜利。所以我建议一些心态不好的散户还能忍时无须忍,忍无可忍最好忍。)

19、股票只分两类,一类是可以赚到钱的,另一类是赚不到甚至会赔钱的。投资我只对两个板块有兴趣,一是龙头板块龙头股,二是落难的英雄(痛点变甜点)。

20、人性不变,故事永恒;牛股三特征,第一点: 历史故事有人传!第二点: 现在故事有人讲!第三点: 未来故事有人听。

21、股市分析师最悲哀的地方:当他说的话投资者视而不见,不肯接受时往往是对的。而当他说的话投资者能接受,敢执行,会执行时往往就错了,或者离错不远了。  

22、“天天盯盘、到处找牛股、喜好短线”是投资者股市不赚钱的主要原因,倒金字塔投资是投资者亏大钱的本质原因,洪攻略是专治这些顽症的。

23、牛市中赚不到大钱的人的共性,他们有两个真妄想,一是妄想买到最低的价格(热心找底),二是妄想卖在最高的价格(热心找顶);还有两个傻担心,一是担心买不到心仪的股票(追高),二是担心抛不出自己的股票(杀跌)。

24、股市行情之残忍就是:当你认为自己心态奇好满仓不怕调整时,这次调整不把你的好心态摧毁是不会停止的;当你认同应该顺应趋势投资而且真的采取了行动时,趋势往往正酝酿改变;当你真正肯接受仓位不能太重的观点并把仓位大幅降低时,过段时间看你撞墙的心都有。

25、如果真是一轮大行情,有个情况必须发生,就是某些散户会鬼使神差的尝试一下过去从没尝试过的空仓或极轻仓,会有大V坚决而果断的踏空。

26、最容易犯的毛病:只认“一个理由”就盲目满仓或空仓。

27、众叛亲离是买机,分歧吵闹宜加仓,一团和气该平仓。

28、大盘在徒弟拜师时走出底部,在徒弟给师傅上课时见顶。

29、板块炒作五阶段:1、龙头引领(有股票一涨再涨);2、你追我赶(全面上涨);3、此消彼长(龙头频换);4、群魔乱舞(大家认为好的可能跌,大家认为差的却大涨);5、回归平静(少数荣归故里,多数辞官还乡)

30、对应一轮板块炒作,大多数投资者的心态历程是:1、视而不见(开始涨);2、开始关注但满是怀疑(大涨);3、将信将疑但开始后悔没买,已不敢买(继续大涨);4、开始认同小额买入(暴涨);5、重仓买入完全认同(震荡,炒作结束,个股分化)。

31、A股一直有其独特的炒作路径:由小及大,由里及表,由虚向实,由痛转甜,但一定要至极才反,即炒到小无可小,里无可里,虚无可虚,痛无可痛。

32、残忍五定律: 1、赚大钱的股票总是买得太少,不赚钱的股票总是买得太多; 2、当相信未来时,未来就结束了; 3、市场总会给你一个理由,让你在黎明到来时,放弃曾经一再的坚持; 4、当你懂得坚持时,持仓的股票也坚持不涨; 5、幸福的日子常常不超过三天,痛苦的日子总以月计。

33、投资A股成功背后的神逻辑:1、选时远比选股重要;2、流通盘大小比利润多少重要;3炒亏损股比炒绩优股成功概率高;4、顺趋势炒政策方向最重要;5、多关注外延式增长,少关心内生性增长;6、顺势而为,风来了扬帆,风没了晒网。

如何使用 phpStorm 重构你的代码

Refactoring code is an essential aspect of building and maintaining software. In this tutorial I will show you how to use PhpStorm’s refactoring functionality to make it as easy as possible.

When refactoring code by hand, whether you’re working with legacy code, or creating new code, it’s easy to make mistakes, such as forgetting one place where the code was used, when renaming a method. That’s why I love to make use of PhpStorm’s refactoring functionality on a regular basis.

If this is your first time hearing about the term, Martin Fowler describes refactoring as:

Refactoring is a controlled technique for improving the design of an existing code base. Its essence is applying a series of small behavior-preserving transformations, each of which “too small to be worth doing“. However the cumulative effect of each of these transformations is quite significant. By doing them in small steps you reduce the risk of introducing errors. You also avoid having the system broken while you are carrying out the restructuring – which allows you to gradually refactor a system over an extended period of time.

Refactoring covers a range of different techniques, including moving, extracting, copying, deleting, and renaming. These cover all the types of changes which you are likely to make to your code on an ongoing basis.

Gladly, PhpStorm’s refactoring functionality, which is included as part of the core package, has support for all of these. In this tutorial, I’m going to step through a couple of them; specifically:

  • Extracting code to a new method
  • Renaming a function
  • Changing a function’s signature

Read more ›

PHP中的self-static-parent关键字

php官方手册介绍:
http://php.net/manual/zh/language.oop5.late-static-bindings.php

不存在继承的时候

不存在继承的意思就是,就书写一个单独的类来使用的时候。self和static在范围解析操作符 (::) 的使用上,并无区别。

  • 在静态函数中,self和static可以调用静态属性和静态函数(没有实例化类,因此不能调用非静态的属性和函数)。
  • 在非静态函数中,self和static可以调用静态属性和静态函数以及非静态函数

此时,self和static的表现是一样的,可以替换为该类名::的方式调用。
Read more ›

SOAP Vs. REST: Difference between Web API Services

The earlier tutorials have given a lot of details on 2 key types of web service designs. One is SOAP protocol (Simple Object Access Protocol) and the other being REST for Representational State Transfer.

Each technique has its own advantages and disadvantages. Hence, it’s always good to understand in which situations each design should be used. This tutorial will go into some of the key differences between these techniques as well as what challenges you might encounter while using them. Read more ›