問題タブ [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.

0 投票する
2 に答える
1209 参照

php - Docker イメージでサービスを起動する方法は?

FPM + Nginx で PHP7 を実行するイメージのDockerfileを作成しましたが、サービスを正しく起動するためのイメージを取得できません。

これは正確にどのように行うべきですか?

ここに私が現在やっている部分があります:

0 投票する
1 に答える
160 参照

php - fetch_field_direct()、getColumnMeta(); による行数ソリューション PHP 7への移植性?

アプリケーションを書き直して、MYSQLI または PDO クエリを使用できるようにしています。これは、'mysqli' または 'pdo' のいずれかをフラグとして保持する $connection_type 変数によって制御できます。

既存のコードには、特定のクエリの行数を必要とするクエリが多数あります。クエリによって返される実際の行数を取得することは、Stackoverflow の他の場所でさまざまな方法で質問され、回答されていますが、MYSQLI または PDO のいずれかで機能する鉄壁の方法にヒットしたと思います。結果オブジェクトは、これらの形式のいずれかのバリエーションを持つクエリからのものです (3 番目の例に注意してください。クエリで COUNT() が使用されているかどうかに関係なく機能するように関数を考案しました)。

MYSQLI の場合、私の解決策は fetch_field_direct() に依存しています。これは明らかに確立された信頼性の高いものです。ただし、PDO の場合、私の解決策は対応する関数 getColumnMeta() に依存しており、PHP.NET ドキュメントで次のようにフラグが付けられています。

警告 この機能は実験的です。この関数の動作、その名前、および関連するドキュメントは、PHP の将来のリリースで予告なしに変更される可能性があります。この機能は、自己責任で使用してください。

だから、私は2つの質問があります:

1) この方法で私が見落としていたものを誰かが見ることができますか?

2) getColumnMeta() が (a) 今後の PHP 7 に存在するかどうか、(b) ファイナライズされているかどうか、それが何を返すか、どの演算子によって返されるかを知っている人はいますか? 関数の名前が同じになり、以下のように「名前」列を返す場合、私のコード (PHP 5.6.12 で正常に動作している) は、PHP 7 でも動作するはずです。リリースされました。

したがって、これが私の関数の現在の状態です。これは、MYSQLI と PDO の両方について、上記のクエリの種類で正常に動作しています (しかし、何か見落としていませんか?):

0 投票する
7 に答える
24359 参照

macos - Mac で PHP7 用に XDebug をセットアップするには?

Homebrew ieを使用してMacにPHP 7をインストールしました

また、自分のマシンにXDebugをセットアップしたいと考えています。

理想的には、もう一度brewを使用するような簡単な解決策が欲しいのですが、残念ながらそのような式は(少なくともまだ)存在しないようで、最新のパッケージはhomebrew/php/php56-xdebug.

手動インストールを開始する前に、ここをチェックして、他の回避策があるかどうかを確認してください。

どんなアドバイスでも大歓迎です。

0 投票する
2 に答える
7454 参照

mysql - PHP 7 のパフォーマンス

WordPress サーバーで PHP 7 と古いバージョンを比較するこのベンチマークを再現しようとしました: http://talks.php.net/oz15#/wpbench

私の構成はほぼ同じで、サーバーには i7、SSD、16GB RAM、debian があります。サーバーソフトウェアはnginxです。驚いたことに、私の結果は上記のリンクとは大きく異なります。

私のテストでは、Siege ( https://www.joedog.org/siege-home/ ) は以下を出力します:

PHP 7.0.0RC1 の場合:

PHP 5.6.12 の場合:

トランザクション レートを見ると、PHP 5 は PHP 7 の約 2 倍高速であることがわかります。信じられません。

もう 1 つの興味深い事実は、このベンチマーク ( http://www.php-benchmark-script.com/ ) を実行すると、PHP 7 が PHP 5 よりも約 3 倍高速になることです (もちろん、私がテストした同じサーバー上で)ワードプレス)。測定結果は次のとおりです。

  • PHP 7.0.0RC1 | PHP 5.5.28
  • 数学: 0.201 | 0.683
  • 文字列操作: 0.271 | 0.77
  • ループ: 0.166 | 0.486
  • それ以外の場合: 0.12 | 0.295

役立つ場合に備えて、両方の phpinfo() ファイルをアップロードしました。

私のWordpressでのテストで、なぜPHP 7がそれほど遅くなったのか分かりますか?


opcacheを有効にすると、 PHP 7 は実際には PHP 5 の 2 倍の速度になります。ヒントをくれた Mjh に感謝します!

ランダムに満たされた WordPress サーバーで次の測定を行いました。

Siege は、 PHP 7.0.0RC1に対して以下を出力するようになりました。

そしてPHP 5.6.12

0 投票する
2 に答える
14803 参照

php - Mampにphp 7.0.0 RC2を追加するにはどうすればよいですか?

私が持っている MAMP の現在のバージョンは php 5.6.10 です。

MAMP インターフェイスの php 設定で選択できる php 7.0.0RC2 バージョンを追加する方法はありますか?

これは、MAMP PRO ではなく、MAMP の無料版用です。

古い質問を見ました (追加の PHP バージョンを MAMP に追加するにはどうすればよいですか)

しかし、php7.0.0RC2 にはモジュール フォルダーがなく、 http://www.mamp.info/en/downloads/で 7.0.0RC バージョンをダウンロードできないため、機能させることができませんでした。

0 投票する
5 に答える
1552 参照

php - PHP: オプションのリストを引数として送信する (名前付きパラメーター/引数バッグの代替)

関数の引数としてオプションのリストを渡したいと思います。

理想的なシナリオ: 名前付きパラメーター

PHP に名前付きパラメーターがある場合は、次のようになります。

残念ながら、PHP には名前付きパラメーターがありませ(PHP7 でコメントとしてパラメーターを指定する予定があるかどうか教えてください)

他の誰もが使用しているソリューション: 連想配列

私が見たほとんどの PHP スクリプトは、次のような代替配列アプローチを使用しています。

連想配列アプローチの欠点

これは問題なく動作しますが、次の欠点があります。

  • ユーザーはオートコンプリートの恩恵を受けません (書き込みに時間がかかります)
  • ユーザーはスペルを間違えやすい
  • 利用可能なオプションがわからないため、頻繁にドキュメントに戻る可能性があります

より良い方法はありますか?

これらの問題に対処できるより良い方法はありますか (現在の PHP または PHP7、あるいは hacklang(?) のいずれか)。

0 投票する
3 に答える
169 参照

php - bool値をチェックする状況でPHP 7の<=>はどのように応答しますか?

途中でphp 7を調べていますが、 <=> 混乱します。

ほとんどの場合、私は条件演算子を使用しますが、それらはブール値の状況で使用されます (<=> はほぼ同じですが、完全ではありませんが、-1 も返すことができます)。(X <=> Y の場合)。そのため、次の場合はどうなるかわかりません...

それが先行する場合、私は何を期待できますか...

また

また

また

これについては、これが何をするのかについて私を混乱させる十分なケースがあることは間違いありません.

0 投票する
1 に答える
270 参照

php - Null Coalesce Operator をトリガーする値は?? php 7を渡しますか?

PHP 7 で null Coalesce 演算子 (?? 演算子) が登場する可能性に興奮していますが、すべてのケースを理解しているわけではありません。

次の場合、結果はどうなりますか?

0 投票する
1 に答える
21108 参照

php - すべてのコードを書き直したりレビューしたりせずにバージョン 5 ~ 7 の間で PHP コードを移行する方法

PHP7 が完全にリリースされたときに、PHP5 から PHP7 に作業している更新コードベースを見ています (主に、速度が向上し、?? 演算子がサイトに本当に役立つ可能性があるためです)。

非推奨の関数があり、バージョン間で変更されているものがあるため、それらを含める前にphpファイルでfilemtimeを使用して、php7の動作を変更してphp5のように動作する関数を含める必要があるかどうかを検討していますそれらのファイル。これは既存のサーバーで機能しますが、ファイルがコピーされると、さまざまなコピー方法 (制御が困難なパイプラインの一部) が変更された日付を変更する可能性が高いことを知っています。

ファイルがどのphpバージョンで書かれているか、互換性があるかを判断し、それらを適切に解釈する方法はありますか?