ホームページ  >  記事  >  バックエンド開発  >  PHP ループ学習 6: オブジェクトを走査する方法

PHP ループ学習 6: オブジェクトを走査する方法

青灯夜游
青灯夜游オリジナル
2021-08-06 12:08:584825ブラウズ

前回の記事「PHP配列学習:配列要素を横断するには?」 「4 つのメソッドの簡単な分析 」では、PHP で配列を走査する 4 つのメソッドを紹介しました。引き続きトラバーサルを理解し、PHP オブジェクトがどのようにトラバースされるかを紹介します。必要に応じて参照してください。

まず第一に、オブジェクト トラバーサルとは何かを理解しましょう。これは主に、オブジェクトの外部から見える属性 (つまり、アクセス制限の public によって宣言された属性) をトラバースすることを指します。

それでは、オブジェクトをどのように横断するのでしょうか?オブジェクト トラバーサルの一般的な方法は、foreach ステートメントを使用することです。そうです、foreach ステートメントを使用するだけです (これは非常に強力です。配列とオブジェクトの両方を走査できます)。

foreach ステートメントは、確かに最初は配列を走査するように設計されていましたが、PHP5 以降では、新しい機能が追加され、オブジェクトも走査することができます。 foreach ステートメントには、配列とオブジェクトを走査するための同じ構文形式があります。2 つの形式があります:

//语法格式1
foreach ($object as $value){
    语句块;
}

//语法格式2
foreach ($object as $key => $value){
    语句块;
}

これら 2 つの形式は、実際には非常によく似ています。唯一の違いは: 構文形式 1 での走査 $objec オブジェクトでは、現在のオブジェクトの「メンバー属性値」を各ループの $value に代入し、 構文形式 2 をトラバースします。 $ objec オブジェクトの場合、各ループで現在のオブジェクトの「メンバー属性値」が $value に割り当てられ、「メンバー属性名」が $key# に割り当てられます。 ##。

コード例を使用して、foreach ステートメントがオブジェクトをどのように走査するかを見てみましょう。

クラスを定義し、そのクラスをオブジェクトにインスタンス化します。

<?php
header("Content-type:text/html;charset=utf-8");
class Demo  //定义一个类
{
  public $name;   //定义变量--成员属性
  public $age;    //定义变量--成员属性
  public $salary;  //定义变量--成员属性
  public function __construct($name,$age,$salary)  //定义函数--成员方法
  {
    $this->name = $name;
    $this->age = $age;
    $this->salary = $salary;
   }
}

//实例化对象
$obj = new Demo(&#39;李华&#39;, 25, 4200);

?>

foreach ステートメントを使用してオブジェクトを走査します。

foreach ($obj as $value)
{
  echo $value.&#39;<br>&#39;;
}

出力を見てみましょう。

PHP ループ学習 6: オブジェクトを走査する方法

簡単なことではありませんか。オブジェクトをインスタンス化した後、

foreach ($obj as $value) ステートメントを直接使用して、$obj オブジェクトに表示されているすべてのプロパティを取得します。

上記では「メンバー属性値」のみが取得されていますが、場合によっては「メンバー属性名」と「メンバー属性値」の値を一緒に取得する必要があるため、foreach ステートメントの 2 番目の形式を使用できます。 :

foreach ($obj as $key=>$value)
{
  echo $key.&#39;=>&#39;.$value.&#39;<br>&#39;;
}

出力を見てみましょう:


PHP ループ学習 6: オブジェクトを走査する方法

以上です。他に知りたいことがある場合は、これをクリックしてください。 → →

php ビデオチュートリアル

推奨: PHP 面接の質問の要約 (コレクション)>>

以上がPHP ループ学習 6: オブジェクトを走査する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。