XAMPP에 PHP7.0.0α1 설치

9928 단어 xamppPHP
PHP7.1.0α1/PHP7.1의 새로운 기능/PHP7.0.0α1/PHP5.6

htp //php. 네 t/
htp //php. 네 t/아 r ゔぇ/2015. php #i d2015-06-11-3
Windows용 PHP7이 되었으므로 XAMPP 환경에 설치해 보겠습니다.
덧붙여 α판이므로, 모방하는 경우는 자기 책임으로.

VCRUNTIME140.dll



Visual C++ 2015 런타임이 필요하므로 포함되어 있지 않으면 설치합니다.
h tp : / / s tac ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 30811668 / php7 - 미신 gvc

다운로드



ㅡㅡㅡㅜㅜㅜㅜㅜㅜㅜㅜ php. 네 t/쿠/
PHP 7.0 (7.0.0alpha1)을 선택.
32비트 PC에서는 「VC14 x86 Thread Safe」, 64비트는 「VC14 x64 Thread Safe」를 다운로드.

설치



기존 xampp/php 디렉토리를 삭제하고 이름 바꾸기로 제거하고 압축을 푼 파일을 통째로 xampp/php 디렉토리에 복사합니다.

php.ini



php.ini-development를 php.ini에 복사합니다.

필요한 extension을 활성화합니다.
우선 php_curl, php_gmp, php_mbstring, php_pdo_mysql 당의 코멘트를 제외했다.
기타 필요한 설정. ↓당.
date.timezone = Asia/Tokyo
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass

xampp\apache\conf\extra\httpd-xampp.conf



php5_module, php5apache2_4.dll 등, php5가 되어 있는 곳을 php7로 변경.

시작



XAMPP 제어판에서 시작.
여러가지 부족하지만 일단 작동했다.


PHP7 기능


<?php
    // 厳密なタイプヒンティング
    declare(strict_types=1);

    /**
    * スカラー型タイプヒンティング、返り値のタイプヒンティング
    * @param int
    * @return bool booleanではないらしい
    */
    function hoge(int $i):bool{
        // return null; // Fatal error: Uncaught TypeException: Return value of hoge() must be an instance of boolean, null returned
        return true;
    }
    hoge(1);
    // hoge('1'); // Fatal error: Uncaught TypeException: Argument 1 passed to hoge() must be of the type integer, string given

    // 無名クラス
    $obj = new class(1) { // ()内はコンストラクタ引数
        public function __construct(int $i){
            $this->i = $i;
        }
    };

    // 環境によらず使える暗号論的擬似乱数生成器
    var_dump(random_int(100, 999));

    // 鮫
    var_dump("\u{9BAB}"); // ''では不可

    // 致命的エラー
    try {
        require_once('fail.php'); // fail.phpのパースエラーを受け取れる
        // a // このファイルがパースエラーの場合は死ぬ
    } catch (ParseException $e) {
        var_dump($e->getMessage()); // syntax error, unexpected end of file
    }

    // <=>
    var_dump(1<=>2, 2<=>2, 3<=>2 ); // 何故かApahceが落ちる

    // ??
    var_dump($_REQUEST['hoge'] ?? 'fuga'); // 未定義でもNoticeの発生しない?:

    // 商
    var_dump(intdiv(6, 4), 6%4); // 商1、余り2

    // ジェネレータ
    $gen = (function(){
        yield 1;
        yield from [2, 3];
        return 4;
        yield 5;
    })();
    foreach($gen as $v){
        var_dump($v); // 1,2,3になる。4は無い
    }
    var_dump($gen->getReturn()); // 4

    // ReflectionGenerator
    $gen = (function(){ yield from [5, 4, 3, 2, 1]; })();
    $ref = new ReflectionGenerator($gen); // 使った後のジェネレータは不可?
    var_dump(
        $ref->getExecutingLine(), // 現在yieldしてる行?
        $ref->getExecutingFile(), // 定義されてるファイル
        $ref->getTrace(), // []しか入ってこない
        $ref->getFunction(), // [ReflectionFunction]
        $ref->getExecutingGenerator() // $gen?
    );

왜냐하면 <=> 연산자가 Apache를 잡고 떨어지지만, 그 이외는 우선 동작했습니다.
음, 아직 α판이고 실용해서는 안 됩니다.
퍼포먼스 측정 등은 특별히 하고 있지 않기 때문에, 고속화의 결과는 불명.
그리고 ReflectionGenerator 되는 클래스를 발견했습니다만 상세 불명.

좋은 웹페이지 즐겨찾기