XML 解析に関する質問を投稿する
XML 解析に関連する質問を投稿します
$a = new SimpleXMLElement('
if(isset ($a[0 ] ))
{
var_dump($a);
var_dump($a[0]);
var_dump($a[1]);
}
die() ;
テストせずに、印刷されると思われる内容を判断するだけで問題ありません。 次に、
が出力されることをテストします。その理由を誰が説明できますか?
-----解決策---------
予想通り...
- PHP コード
オブジェクト(SimpleXMLElement)#1 (1) { ["b"]=> 文字列(1) "1" } オブジェクト(SimpleXMLElement)#2 (1) { ["b"]=> 文字列(1) "1" } オブジェクト(SimpleXMLElement)#2 (1) { ["b"]=> 文字列(1) "1" } <br><font color="#e78608">------解決策------------------</font><br> 場所によってテストは異なりますか? <br>
- PHP コード
オブジェクト(SimpleXMLElement)#1 (1) { ["b"]=> 文字列(1) "1" } オブジェクト(SimpleXMLElement)#2 (1) { ["b"]=> 文字列(1) "1" } NULL <br><font color="#e78608">------解決策------------------</font><br> オブジェクト(SimpleXMLElement)#1 (1) { ["b"]=> 文字列(1) "1" } オブジェクト(SimpleXMLElement)#2 (1) { ["b"]=> 文字列(1) "1" " } <br>警告: main() [function.main]: D:APMServ5.2.6wwwhtdocslocalhostsimple_xml.php の 7 行目にそのような要素が 0 個しか存在しない場合、要素 xml 番号 1 を追加できません<br>object(SimpleXMLElement)#2 ( 1) { ["b"]=> 文字列(1) "1" } <br>---------------------------- --- -<br>var_dump($a); この型がオブジェクトの場合は問題ありません! <br><br>a[0] または a[1] が配列呼び出しである場合は、エラーが報告されます。説明しました;<br> <br><br> <br><font color="#e78608">------解決策------------------</font><br> 何が問題ですか? <br><font color="#e78608">------解決策------------------</font><br> <br><font color="#e78608">------解決策------------------</font><br> さて、答えは比較的単純で、多くの説明は必要ありません: この拡張機能は次のように書かれています... $a[0] が $a 自体を返すようにします...<br><br>うーん、でもどうなのでしょうかこの拡張機能は C ソースコードも見たことがありません...興味があれば見てみてください...<br><br>ただし、これは PHP レベルでも実現できます。<br><br>もちろん例を示します。鍵はこの「ArrayAccess の実装」にあります<br>http://www.php.net/manual/en/class.arrayaccess.php<br><br><br>
- PHP コード
<?php クラス X は ArrayAccess {を実装します パブリック $a=1; パブリック関数 offsetExists ( $offset ){ if($offset==0) true を返します。 } パブリック関数 offsetGet ( $offset ){ if($offset==0)$this を返す; } パブリック関数 offsetSet ( $offset , $value ){ if($offset==0) $this->a=$value; } パブリック関数 offsetUnset ( $offset ){ if($offset==0) unset($this->a); } } $m=新しいX(); print_R($m); print_R($m[0]); <br /><font color='#e78608'>------解決策------------------</font><br /> <dl class='code'>PHP コード<pre class="brush:php;toolbar:false"> オブジェクト(SimpleXMLElement)#1 (1) { ["b"]=> 文字列(1) "1" } オブジェクト(SimpleXMLElement)#2 (1) { ["b"]=> 文字列(1) "1" " } 警告: main() [function.main]: 7 行目の PHPDocument1 にそのような要素が 0 個しか存在しない場合、要素 xml 番号 1 を追加できません object(SimpleXMLElement)#2 (1) { ["b"]=> string(1) "1" } <br><font color="#e78608">------解決策------------------</font><br> 実際、$a を含む $a->xx、$a[0] はすべて、データ構造を操作するためのインターフェイスです。<br>インターフェイスからどのような結果が得られるかは、完全に依存します。コードの書き方<br>同様に、データ構造が提供するインターフェイスもコードの書き方に依存します<br>(もちろん、これには論理関数と言語関数の両方でいくつかの制限があります)<br><br>たとえば、 __toString メソッドを実装している限り、どのクラスでも $obj を直接エコーできます。<br> ただし、これは $obj が文字列であることを意味するのではなく、文字列インターフェイスでデータを操作するメソッドを提供することを意味します。 .<br><br>それでは、質問に戻ります。<br>この SimpleXMLElement はリソース (PHP のいわゆるリソースは、C/C++ ソース プログラム内の構造体またはクラスなどです)、<br>拡張ソースプログラムではどのようなインターフェイスを制御できますか? <br> クラス操作インターフェイス「->」、配列操作インターフェイス「[0]」、文字出力インターフェイス「echo」を提供できます。など、同時に <br> を提供することもできます。したがって、配列操作インターフェイスを提供する場合、$x[0] が <br><br> ここで示す例は、PHP レベルで、ArrayAccess インターフェイス (インターフェイス、またはインターフェイスに変換できるインターフェイス) を通じて、配列操作用のインターフェイスがクラスに提供されることです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java の String.valueOf() 関数を使用して基本データ型を文字列に変換する Java 開発で基本データ型を文字列に変換する必要がある場合、一般的な方法は String クラスの valueOf() 関数を使用することです。この関数は、基本データ型のパラメータを受け入れ、対応する文字列表現を返すことができます。この記事では、基本的なデータ型変換に String.valueOf() 関数を使用する方法を検討し、いくつかのコード例を提供します。

char配列をstringに変換する方法:代入によって実現できます {char a[]=" abc d\0efg ";string s=a;} 構文を使用して、char配列にstringに値を直接代入させて実行します変換を完了するためのコード。

Java の String.replace() 関数を使用して文字列内の文字 (文字列) を置換する Java では、文字列は不変オブジェクトです。つまり、文字列オブジェクトが作成されると、その値は変更できません。ただし、文字列内の特定の文字または文字列を置換する必要がある状況が発生する場合があります。現時点では、Java の String クラスの replace() メソッドを使用して文字列置換を実装できます。 String クラスの replace() メソッドには 2 つのタイプがあります。

皆さんこんにちは。今日は Java の基本知識である String についてお話します。 String クラスの重要性は言うまでもなく、バックエンド開発で最もよく使用されるクラスであるため、説明する必要があります。

Golang プログラミングでは、バイト、ルーン、文字列型は非常に基本的で一般的なデータ型です。これらは、文字列やファイル ストリームなどのデータ操作の処理において重要な役割を果たします。これらのデータ操作を実行するときは、通常、データを相互に変換する必要があるため、変換スキルを習得する必要があります。この記事では、読者がこれらのデータ型をより深く理解し、プログラミングの実践に上手に適用できるようにすることを目的として、Golang 関数のバイト、ルーン、および文字列の型変換テクニックを紹介します。

文字列の長さを取得するには、Java の String.length() 関数を使用します。Java プログラミングでは、文字列は非常に一般的なデータ型です。多くの場合、文字列の長さ、つまり文字列内の文字数を取得する必要があります。 Java では、String クラスの length() 関数を使用して文字列の長さを取得できます。簡単なコード例を次に示します。 publicclassStringLengthExample{publ

1. JDK の String1. String を理解する まず、JDK の String クラスのソース コードを見てみましょう. これには多くのインターフェイスが実装されています. String クラスは Final によって変更されていることがわかります. これは、String クラスができないことを意味しますString. クラスのサブクラスは継承されず、String. クラスのサブクラスは存在しないため、JDK を使用するすべての人が同じ String クラスを使用します。String の継承が許可されている場合、誰もが String を拡張できます。全員が異なるバージョンの String を使用し、2 人の異なる人が String. クラスを使用します。同じメソッドでも異なる結果が表示されるため、コードの開発が不可能になります。継承とメソッドのオーバーライドは柔軟性をもたらすだけでなく、多くのサブクラスの動作が異なる原因になります。

String の Split メソッドは、String の Split() メソッドを使用して、受信する文字または文字列に従って String を分割し、分割された配列を返します。 1. 一般的な使用法 @ や区切り文字などの一般的な文字を使用する場合: Stringaddress="Shanghai@Shanghai City@Minhang District@Wuzhong Road";String[]splitAddr=address.split("@");System .out。 println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3]
