問題タブ [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.
php - php.ini の Extension と zend_extension の違いは何ですか?
を介して Xdebug をインストールするとpecl、次の行が php.ini ファイルに追加されました。
そして、私が使用したものはすべて機能しました。今日まで。
今日、対話型デバッグ用に Xdebug をセットアップする際に問題が発生しました。上記を次のように変更するまで、何も機能しませんでした
(注意:これが私を働かせた理由だと思いますが、100%確信はありません)
これは私の心に疑問を投げかけました。と を介して拡張機能をロードすることの違いは何extension=ですかzend_extension?
php - ZendエンジンはPHPの外部に埋め込むことができますか?
Zendエンジンの元々の設計の1つは、私が思い出すと、作成したい他の言語に比較的簡単に埋め込むことができるというものでした。基本的に、すべてのPHPモジュールを含まないPHP構文。これはまだ当てはまりますか?
php - 「zend_mm_heapcorrupted」とはどういう意味ですか
突然、アプリケーションでこれまでにない問題が発生しました。Apacheのエラーログを確認することにしましたが、「zend_mm_heapが破損しています」というエラーメッセージが見つかりました。これは何を意味するのでしょうか。
OS:Fedora Core 8 Apache:2.2.9 PHP:5.2.6
php - リソースのタイプを知らずに zend リソースをフェッチする
フェッチするリソースのタイプを知らなくても zend リソース ( zend_fetch_resource) をフェッチすることは可能ですか? もしそうなら、どのように?
注: PHP 拡張機能を作成しています。
php - zend engineがリソースを解放するのを防ぐことは可能ですか?
zend engineがPHPで割り当てられたリソースを解放するのを防ぐことは可能ですか?
たとえば、プロセスがforked()され、リソースが子プロセスに複製された場合、子プロセスまたは親プロセスのいずれかが終了すると、リソースは解放されるため、他のプロセスはそれらにアクセスできなくなります。
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をコンパイルする適切な方法は何ですか?
php - 複数のリクエストにまたがる拡張機能の Zend グローバル変数
タイトルが示すように、複数のクライアントからのリクエストにまたがって情報を維持したいと考えています。簡単な例を挙げて、私が何を望んでいるのかを説明しましょう。この例は、私の質問を説明するためのものであり、投稿の目的ではありません。
例: さまざまな php スクリプトについて、サーバーがこれまでにすべてのクライアントから受け取ったリクエストの総数を数えたいと考えています。つまり、複数の異なるページに対して複数の異なるクライアントから送信されるリクエストの合計数です。これで、そのグローバル カウントを読み取って PHP プログラマーに返す拡張機能ができました。
zend が提供するスーパーグローバル変数は、同じクライアントからの複数のリクエスト間で持続します。変数を保存する方法と場所、および変数を取得する方法を知っている人はいますか?
php - PHP では、$foo = new Foo() の場合、技術的に言えば、$foo はオブジェクトですか、それとも $foo は参照ですか?
更新: で
それは言います:
よく言及される PHP5 OOP のキーポイントの 1 つは、「オブジェクトはデフォルトで参照によって渡される」ということです。これは完全に真実ではありません。
何故ですか?以下は、完全に正しいかどうかわからない理由です。
大まかに言えば、foo はオブジェクト、またはクラス Foo のインスタンスと言えると思います。
しかし、非常に技術的に言えば、foo は単なる参照であり、変数fooが常にオブジェクトへの参照である Java や Ruby とまったく同じ方法であるというのは本当ですか。
そのため、PHP では、
「参照渡し」とは言いませんが、非常に技術的に言えば、参照である値を渡しています。つまり、「参照渡し」ではなく「参照渡し」です。
しかし、PHP で foo がオブジェクトであると言うなら、「参照渡し」は理にかなっていると思います。それで本当ですか?foo は、オブジェクトではなくオブジェクトへの参照であると言われているため、「値渡し」しているだけなのでしょうか?