問題タブ [php-internals]

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 に答える
20056 参照

php - php.ini の Extension と zend_extension の違いは何ですか?

を介して Xdebug をインストールするとpecl、次の行が php.ini ファイルに追加されました。

そして、私が使用したものはすべて機能しました。今日まで。

今日、対話型デバッグ用に Xdebug をセットアップする際に問題が発生しました。上記を次のように変更するまで、何も機能しませんでした

(注意:これが私を働かせた理由だと思いますが、100%確信はありません)

これは私の心に疑問を投げかけました。と を介して拡張機能をロードすることの違いは何extension=ですかzend_extension?

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

c - 同様の構文により、WindowsでソースからPHPをビルドするときに、奇妙な繰り返しのコンパイルエラーが発生します

私はこれらの指示に従ってソースからPHPを構築しようとしています。構成は本当にうまく機能しますが、私がそのnmake部分に到達すると、物事はバラバラになります。構造体についてエラーが発生する理由がわかりません。参照されている行は関数です。

問題のあるzend_interfaces.cをここに配置しました。

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

php - ZendエンジンはPHPの外部に埋め込むことができますか?

Zendエンジンの元々の設計の1つは、私が思い出すと、作成したい他の言語に比較的簡単に埋め込むことができるというものでした。基本的に、すべてのPHPモジュールを含まないPHP構文。これはまだ当てはまりますか?

0 投票する
40 に答える
176144 参照

php - 「zend_mm_heapcorrupted」とはどういう意味ですか

突然、アプリケーションでこれまでにない問題が発生しました。Apacheのエラーログを確認することにしましたが、「zend_mm_heapが破損しています」というエラーメッセージが見つかりました。これは何を意味するのでしょうか。

OS:Fedora Core 8 Apache:2.2.9 PHP:5.2.6

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

php - リソースのタイプを知らずに zend リソースをフェッチする

フェッチするリソースのタイプを知らなくても zend リソース ( zend_fetch_resource) をフェッチすることは可能ですか? もしそうなら、どのように?

注: PHP 拡張機能を作成しています。

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

php - zend engineがリソースを解放するのを防ぐことは可能ですか?

zend engineがPHPで割り当てられたリソースを解放するのを防ぐことは可能ですか?

たとえば、プロセスがforked()され、リソースが子プロセスに複製された場合、子プロセスまたは親プロセスのいずれかが終了すると、リソースは解放されるため、他のプロセスはそれらにアクセスできなくなります。

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

php - DEBUG_ZEND レベルを変更して PHP をコンパイルする

PHP拡張機能をデバッグしていて、PHPソースコードを調べているときにこれを見つけました:

したがって、DEBUG_ZEND を 2 に設定してコンパイルしたいと思いますZend/zend_compile.h

代わりにその値を 2 に編集してから、通常の方法を試しました。

makeしばらくはそのことを行いますが、その後、一連のReducing refcount for ...メッセージが表示されてmake失敗します:

DEBUG_ZEND0 に戻すと、PHP は正常にコンパイルされます。私が見つけることDEBUG_ZENDができた唯一の参照は、このバグレポートにありました:

http://bugs.php.net/bug.php?id=45761

このスニペットは関連しているように見えました:

構成コマンドの先頭に CFLAGS="-DDEBUG_ZEND=2" を追加して再構成し、「make clean」を実行してから「make」...

それでCFLAGS="-DDEBUG_ZEND=2"、シバンの直後に追加configureして、コンパイルできました。ただし、スクリプトの実行時に refcounts に関する追加の出力が表示されないため、実際に何かが行われたとは確信していません。

DEBUG_ZEND2に設定してPHPをコンパイルする適切な方法は何ですか?

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

php - 複数のリクエストにまたがる拡張機能の Zend グローバル変数

タイトルが示すように、複数のクライアントからのリクエストにまたがって情報を維持したいと考えています。簡単な例を挙げて、私が何を望んでいるのかを説明しましょう。この例は、私の質問を説明するためのものであり、投稿の目的ではありません。

例: さまざまな php スクリプトについて、サーバーがこれまでにすべてのクライアントから受け取ったリクエストの総数を数えたいと考えています。つまり、複数の異なるページに対して複数の異なるクライアントから送信されるリクエストの合計数です。これで、そのグローバル カウントを読み取って PHP プログラマーに返す拡張機能ができました。

zend が提供するスーパーグローバル変数は、同じクライアントからの複数のリクエスト間で持続します。変数を保存する方法と場所、および変数を取得する方法を知っている人はいますか?

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

php - PHP では、$foo = new Foo() の場合、技術的に言えば、$foo はオブジェクトですか、それとも $foo は参照ですか?

更新: で

http://php.net/manual/en/language.oop5.references.php

それは言います:

よく言及される PHP5 OOP のキーポイントの 1 つは、「オブジェクトはデフォルトで参照によって渡される」ということです。これは完全に真実ではありません。

何故ですか?以下は、完全に正しいかどうかわからない理由です。

大まかに言えば、foo はオブジェクト、またはクラス Foo のインスタンスと言えると思います。

しかし、非常に技術的に言えば、foo は単なる参照であり、変数fooが常にオブジェクトへの参照である Java や Ruby とまったく同じ方法であるというのは本当ですか。

そのため、PHP では、

「参照渡し」とは言いませんが、非常に技術的に言えば、参照である値を渡しています。つまり、「参照渡し」ではなく「参照渡し」です

しかし、PHP で foo がオブジェクトであると言うなら、「参照渡し」は理にかなっていると思います。それで本当ですか?foo は、オブジェクトではなくオブジェクトへの参照であると言われているため、「値渡し」しているだけなのでしょうか?