問題タブ [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 - PHPZendEngine拡張機能と静的メソッド
php(5.3)の拡張機能を作成する際zend_class_entry
に、静的メソッドのポインターにアクセスしたいと思います。
非静的メソッドでは、次のようにgetThis()
マクロとマクロ内で使用できますZ_OBJCE_P
。
ここで問題があります。静的メソッドでは、マクロがポインターをgetThis()
返すため、マクロを使用できません。null
Z_OBJCE_P
zend_class_entry
静的メソッドからにアクセスするための解決策はありますか?
php - PHP 拡張機能の問題
配列が返された c で php 拡張機能を作成しようとすると、厄介な問題が発生します。いくつかのチュートリアルが言ったようにしますが、配列を返す必要があります。
array_init(return_array)
すべての例で、戻り配列を初期化すると言われていますが、return_array
宣言されている場所が見つかりません。したがって、エラーが発生しました:
error C2065: 'return_array' : undeclared identifier
、ただし、追加すると:
zval * return_array ;
しかし、それはあなたのアプリがアドレス000000fを読み取れない 理由をスローしますか?
配列を返すことを含む詳細な拡張例を教えてください....何百万回もありがとう
php - PHP変数が参照/参照されているかどうかの検出
PHPには、特定の変数が別の変数への参照であるか、別の変数によって参照されているかを判断する方法がありますか?php.netのコメント$a=& $b
では、「$aと$bはここでは完全に等しい。$aは$bを指していないか、逆もまた同様です。$aと$bは同じ場所を指しています。」
特定の変数が参照/参照されているかどうかを判断できない場合、2つの変数が相互の参照であるかどうかを判断する一般的な方法はありますか?繰り返しになりますが、php.netのコメントは、そのような比較を行うための関数を提供します。ただし、これは、変数の1つを編集し、他の変数が同様に影響を受けるかどうかを確認する関数です。私が検討している変数のいくつかは魔法のゲッター/セッターを多用しているので、可能であればこれを避けたいと思います。
この場合のリクエストの背景は、構造を詳細に表示するのに役立つデバッグ関数を作成することです。
php - php.iniから配列を読み取るためにphpソース(cコード)を作成/パッチするにはどうすればよいですか?
私はphpの経験がありますが、phpソースとphp拡張機能の初心者です。1つの固定ディレクトリではなく、配列からupload_tmp_dirをランダムに選択するようにphpを拡張したいと思います。
これはphpのようには見えず、iniファイル読み取りコードにはiniファイル内の配列を解析する自然な機能があります。
ini定義の配列をphpのグローバル配列valにマッピングできる既存のコードまたは拡張機能(ツリー内またはツリー外)はありますか?
それ以外の場合は、「num_upload_dirs」、「upload_tmp_dir_1」、「upload_tmp_dir_2」などの初期値を導入してから、すべての値を明示的にチェックすると思います。
または、行解析およびグローバル配列作成ルーチンを自分でiniファイルリーダーに記述します。どちらもあまり魅力的ではありません。他に何か提案はありますか?
php - Microsoft Visual C ++ 2008でPHP拡張機能をコンパイルするにはどうすればよいですか?
Hello World
Microsoft Visual C ++ 2008を使用してPHP拡張DLLを作成しました。権利はありますphp.ini
が(gd2拡張を有効または無効にすると効果があります)、拡張をロードしても追加モジュールの下にポップアップ表示されません。でphpinfo()
。
関数(単純な関数)をテストしようとすると、double()
明らかに機能しません。このチュートリアルを使用しました)。
誰かがこれを行うときに作成されたdllを提供できる場合(私のサーバーが台無しになっているかどうか、またはそれが私のサーバーであるかどうかを確認するため)、喜んでテストします。
システム仕様
OS:Windows(Vista)
サーバー:
WAMP PHP:5.3.5(XamppとIISもインストールされています)
コマンドを実行すると、次のphp --ini
エラーが発生します。
これは、PHPをコンパイルするためにバージョン9を使用する必要があることを意味しますか?
php - C コードを PHP スクリプトに埋め込んでみる
SWIG の使用方法を学んでおり、C ライブラリの php ラッパーを作成しています。拡張機能は正常にコンパイルされますが、関数を呼び出そうとすると、次のエラーが発生します。
php: シンボル検索エラー: /usr/lib/php5/20090626+lfs/fact.so: 未定義のシンボル: 事実
php - Linux で php モジュールを .so ライブラリにリンクする
PHP モジュールに取り組んでいますが、Linux で共有ライブラリとのリンクに問題があります。
.so にリンクするために config.m4 に入れる必要があるコマンドは何ですか? /usr/lib/ または /usr/lib64/ の下に .so ファイルがある場合、コンパイラはそれを正しく見つけられるはずですか?
私の現在のconfig.m4ファイルを以下に示します
前もって感謝します
アレックス
php - CでPHPモジュールを書く方法
C で独自のモジュールを作成するにはどうすればよいですか? 出来ますか ?
php - PHP の組み込み関数は内部でどのように実装されていますか?
これらの関数はユーザー関数と同じように書かれていますか? つまり、PHP コードや正規表現などでしょうか。
例えば:
filter_var($email, FILTER_VALIDATE_EMAIL);
対。
http://www.totallyphp.co.uk/code/validate_an_email_address_using_regular_expressions.htm
php - PHP の静的メンバーとインスタンス メンバーも同じようです。なぜPHPはそうするのですか(警告なし)?
これは、PHP では静的メソッドとインスタンス メソッドにまったく違いがないことを意味します。Zend はそれについて不平を言うことさえありません (警告なし)。
Zend エンジンで。静的メソッドとインスタンス メソッドの両方がすべて zend_class_entry.function_table に保存されます。
なぜPHPはこのように振る舞うのですか? それはバグですか、それとも機能ですか?