search
Homephp教程php手册兴奋、强类型版的PHP语言

兴奋、强类型版的PHP语言

Jun 06, 2016 pm 07:47 PM
facebookhackphproll outtypelanguage

Hack 是 Facebook 推出的一款新的编程语言。 Hack 是由Facebook开发的,同时结合了动态类型语言(如C语言)和静态类型语言(如PHP语言)两种特点的一种编程语言。通常在使用静态类型语言编程 时,开发者会在程序被运行前就知道错误发生的位置。而在更为当前

Hack 是 Facebook 推出的一款新的编程语言。

Hack 是由Facebook开发的,同时结合了动态类型语言(如C语言)和静态类型语言(如PHP语言)两种特点的一种编程语言。通常在使用静态类型语言编程 时,开发者会在程序被运行前就知道错误发生的位置。而在更为当前的编程环境里,动态类型语言会一直运行到直至程序出错崩溃。

兴奋、强类型版的PHP语言

 

特性:

  • 该语言将能使代码的编写和测试更加高效快速,能够在程序运行前捕获到其中的错误;
  • 同时结合了动态类型语言(如PHP语言)和静态类型语言(如C语言)两种特点;
  • Hack对代码本身的运行速度并没有实质影响;
  • 基于hhvm(hiphop vm)运行

 我不知道我的系统环境如何,用下面的步骤就装好了

hhvm --<span>version
HipHop VM </span><span>2.5</span>.<span>0</span>-dev+<span>2014.03</span>.<span>20</span><span> (rel)
Compiler: heads</span>/master-<span>0</span>-<span>gc4b6a793b0d6bc28e63c29151ca0a5c12bbbf856
Repo schema: 0e601f9f2c514001cbe38f215a281d34f36a9a9c</span>

 

Installing Boost 1.49

Similarly, HHVM requires Boost 1.49, but Ubuntu 12.04 only ships with 1.48. To get a more recent version, follow these steps:

<span>sudo</span> add-apt-repository ppa:mapnik/<span>boost
</span><span>sudo</span> apt-<span>get update
</span><span>sudo</span> apt-get <span>install</span> libboost1.<span>49</span>-dev libboost-regex1.<span>49</span>-<span>dev \
  libboost</span>-system1.<span>49</span>-dev libboost-program-options1.<span>49</span>-<span>dev \
  libboost</span>-filesystem1.<span>49</span>-dev libboost-thread1.<span>49</span>-dev

 

<br>

For Ubuntu 12.04:

<span>wget</span> -O - http:<span>//</span><span>dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -</span>
<span>echo</span> deb http:<span>//</span><span>dl.hhvm.com/ubuntu precise main | sudo tee /etc/apt/sources.list.d/hhvm.list</span>
<span>sudo</span> apt-<span>get update
</span><span>sudo</span> apt-get <span>install</span> hhvm-nightly

 

<code><span>装好后,创建一个文件如 first.hack,代码如下:<br><br></span></code>

<span>hh

</span><span>//</span><span> Hack functions are annotated with types.</span>
<span>function</span> my_negation(bool <span>$x</span>):<span> bool {
  </span><span>return</span> !<span>$x</span><span>;
}

</span><span>//</span><span> FIXME: annotate this function parameter
// and return with the type 'int'.</span>
<span>function</span> add_one(int <span>$x</span>):<span> int {
  </span><span>return</span> <span>$x</span>+1<span>;
}

</span><span>echo</span> add_one(5);

 

<code><span>在命令行运行<br><br></span></code>

hhvm first.hack

 

<code><span> </span></code>

 

安装指南

 

1. https://github.com/facebook/hhvm/wiki/Building-and-installing-HHVM-on-Ubuntu-12.04

2. http://zendframework.info/tag/hhvm-2/

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),