問題タブ [php-parser]
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: 古いバージョンで 'yield' を使用して php ファイルを解析する方法
古いクラスをオンラインで置き換えるクラスを構築しています。PHP 5.3 の古いプロジェクトがあります。新しい php 5.6 および 7.0 プロジェクト。開発者は新しいバージョンで「yield」などの新機能を使用したいと考えていますが、そのクラスは古いプロジェクトにも含まれている可能性があります。当然のことながら、古いプロジェクトではコードを yield で実行することはできませんが、ファイルを解析することさえできません。では、2 つの異なるファイルを作成する必要がありますか?
私はこれを使いたい:
利回り $key => $value;
ps '$key' がない場合は、次のように簡単に記述できます。
利回り ($値);
これは、ver 5.3 で解析できます。
どうもありがとうございました。
php - 保護された属性を除く 2 つのノードを比較するにはどうすればよいですか? (PHPパーサー)
プロジェクトでPHP-Parserを使用しています。PHPUnit
のassertEquals
関数を使用して、2 つのノードを比較したいと思います。
ノードは同じですが、偽の結果が得られます。その理由は、ノードの 1 つに 2 つの保護された属性が含まれており、もう 1 つのノードには含まれていないためです。
保護された属性を除いたノードを比較することはできますか?
サンプルデータ
最初のオブジェクト:
2 番目のオブジェクト:
PhpParser\Node\Scalar\String_
のオブジェクトに注意してください["value"]=> string(3) "FOO"