問題タブ [php-7]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP 7 インターフェイスの static 戻り型
static
PHP 7 で、戻り値の型を持つインターフェイスを宣言できないのはなぜですか?
次のクラスがあるとします。
plus()
メソッドの戻り値の型を に強制したいstatic
、つまり:
BigInteger::plus()
を返す必要がありますBigInteger
BigDecimal::plus()
を返す必要がありますBigDecimal
次の方法でインターフェイスを宣言できます。
しかし、それは上記を強制しません。私がやりたいことは次のとおりです。
しかし、PHP 7 は今のところ満足していません。
PHP 解析エラー: 構文エラー、予期しない「静的」(T_STATIC)
これには特定の理由がありますか、それとも報告すべきバグですか?
null-coalescing-operator - Null合体演算子は偽の値でも使用できますが、nullでは使用できませんか?
PHPの新しいnull 合体演算子は確かに優れた機能であり、||
デフォルト値を取得するための JavaScript の使用法にいくらか匹敵します。
この機能に関するドキュメントや記事をいくつか読みましたが、まだよくわからないことがあります。
1.この演算子を任意の数のオペランドで使用できますか? たとえば、これは有効でしょうか?
$a = $p1 ?? $p2;
$b = $r1 ?? $r2 ?? $r3 ?? $r4 ?? $r5;
2. null ではない偽値についてはどうですか?
$test = false ?? 0 ?? 'test';
-$test
今はどうなりますか?null 以外の偽の値で機能しない場合、どうすれば JavaScript のように機能するの||
でしょうか?
php - PHP 7 Unicode サポートとプラットフォーム非依存
PHP 7 が「一貫した 64 ビット」をサポートすることが発表されました。これは何を意味するのでしょうか?
PHP 7 は、PHP 6 で計画されていたものと同様の Unicode (unicode.semantics
ディレクティブなど) をサポートしていますか? そうでない場合、ネイティブで Unicode をサポートするのはいつですか?
php - PHP 7 の匿名クラス
PHP 7 で提供されている匿名クラスはどこで使用でき、使用する必要がありますか? それらのユースケースが見つかりません。
php - 宣言すると空白ページ(strict_types=1); ファイルの先頭にあるPHP 7で
最近、私は PHP 7 を調べていました。具体的には、型宣言と型ヒントを返します。ソース ( Githubの master ブランチ) から PHP 7 をコンパイルし、Ubuntu 14.04 仮想ボックスで実行しました。新しいExceptionsのテストを取得するために、次のコードを実行しようとしました。しかし、それは空白のページを与えました。
次に、エラーを画面に表示するように設定する必要があることに気付きました。ini_set('display_errors', 1);
だから私は以下のように昔ながらを追加しました、
このThrowable interface RFCTypeError
に従って、期待どおりにフォローしてくれました
致命的なエラー: Uncaught TypeError: test() の戻り値は、/usr/share/nginx/html/test.php の 7 行目の /usr/share/nginx/html/test.php に返される文字列型の配列である必要があります:7 スタック トレース: #0 /usr/share/nginx/html/test.php(10): test() #1 {main} が 7 行目の /usr/share/nginx/html/test.php でスローされました
declare(strict_types=1);
さらに掘り下げて、以下のように上部に追加しました。
そしてバング、エラーが消えて空白のページが残りました。空白のページが表示される理由がわかりませんか?
php - 型ヒントと複数のコンストラクター
私は PHP7 の新機能を調べており、スカラー型ヒンティングなど、PHP7 が導入する新機能に向けてプロジェクトの準備を始めるかもしれないと考えていました。
私が最初に遭遇した問題の 1 つは、さまざまなクラスのコンストラクターでした。私は、次のような動作をする一般的な委託者をいくつか持っています。
もちろん、このメソッドに型ヒントを導入すると、あらゆる方向にエラーがスローされます。
私の知る限り、PHP7 は複数のコンストラクターのサポートを導入していません。この問題を回避する方法はありますか、それとも言語の制限の 1 つですか?
hhvm - HHVM は PHP7 を実行できますか?
PHP7 には HHVM とほぼ同じくらい高速な新しいコンパイラがあることは知っていますが、HHVM が PHP5 だけでなく PHP7 も実行できるかどうかに興味があります。
これに関する詳細は見つかりません。私が見つけたものはすべて、HHVM と PHP7 の比較にすぎません。また、HHVM で実行される PHP5 のバージョンを誰でも見つけることができます。
ありがとう