php解析go语言包 php+golang

从PHP 到Golang 的笔记 ( 转 ) ———文章来源YamiOdymel/PHP-to-Golang
PHP和模块之间的关系令人感到烦躁,假设你要读取 yaml 档案,你需要有一个 yaml 的模块 , 为此 , 你还需要将其编译然后将编译后的模块摆放至指定位置,之后换了一台伺服器你还要重新编译 , 这点到现在还是没有改善;顺带一提之后出了PHP 7效能确实提升了许多(比Python 3快了些),但PHP仍令我感到臃肿,我觉得是时候
(转行)了 。
PHP 和Golang 的效能我想毋庸置疑是后者比较快(而且是以倍数来算) , 也许有的人会认为两种不应该被放在一起比较,但Golang 本身就是偏向Web 开发的,所以这也是为什么我考虑转用Golang 的原因 , 起初我的考虑有几个:Node.js 和Rust 还有最终被选定的Golang;先谈谈Node.js 吧 。
Node.js的效能可以说是快上PHP3.5倍至6倍左右 ,而且撰写的语言还是JavaScript , 蒸蚌,如此一来就不需要学习新语言了!搭配Babel更可以说是万能,不过那跟「跳跳虎」一样的Async逻辑还有那恐怖的Callback Hell,有人认为前者是种优点,这点我不否认,但是对学习PHP的我来说太过于"Mind Fuck",至于后者的Callback Hell虽然有Promise,但是那又是另一个「Then Hell」的故事了 。相较于Golang之下,Node.js似乎就没有那么吸引我了 。你确实可以用Node.js写出很多东西 , 不过那V8引擎的效能仍然有限 , 而且要学习新的事物,不就应该是「全新」的吗;)?
题外话: 为什么Node.js不适合大型和商业专案?
在抛弃改用Node.js 之后我曾经花了一天的时间尝试Rust 和Iron 框架,嗯??Rust 太强大了,强大到让我觉得Rust 不应该用在这里 , 这想法也许很蠢,但Rust 让我觉得适合更应该拿来用在系统或者是部分底层的地方,而不应该是网路服务 。
【php解析go语言包 php+golang】 Golang是我最终的选择 , 主要在于我花了一天的时间来研究的时候意外地发现Golang夭寿简洁( 关键字只有25个 ) , 相较之下Rust太过于「强大」令我怯步;而且Golang带有许多工具 , 例如 go fmt 会自动帮你整理程式码、 go doc 会自动帮你生产文件、 go test 可以自动单元测试并生产覆盖率报表、也有 go get 套件管理工具(虽然没有版本功能),不过都很实用,而且也不需要加上分号( ; ),真要说不好的地方??大概就是强迫你花括号不能换行放吧(没错 , 我就是花括号会换行放的人) 。
当我在撰写这份文件的时候 我会先假设你有一定的基础  , 你可以先阅读下列的手册,他们都很不错 。
你能够在PHP 里面想建立一个变数的时候就直接建立 , 夭寿赞,是吗?
蒸蚌!那么Golang 呢?在Golang 中变数分为几类:「新定义」、「预先定义」、「自动新定义」、「覆盖」 。让我们来看看范例:
在PHP中你会很常用到 echo 来显示文字,像这样 。
然而在Golang中你会需要 fmt 套件,关于「什么是套件」的说明你可以在文章下述了解 。
这很简单,而且两个语言的用法相差甚少,下面这是PHP:
只是Golang 稍微聒噪了一点 , 你必须在函式后面宣告他最后会回传什么资料型别 。
在PHP 中你要回传多个资料你就会用上阵列,然后将资料放入阵列里面,像这样 。
然而在Golang 中你可以不必用到一个阵列 , 函式可以一次回传多个值:
两个语言的撰写方式不尽相同 。
主要是PHP 的阵列能做太多事情了,所以在PHP 里面要储存什么用阵列就好了 。

推荐阅读