ホームページ > バックエンド開発 > PHPチュートリアル > PHP OOP での関数呼び出しのスコープと可視性

PHP OOP での関数呼び出しのスコープと可視性

PHPz
リリース: 2024-04-11 09:51:01
オリジナル
1029 人が閲覧しました

関数呼び出しのスコープと可視性: スコープ: 関数にアクセスできる変数のスコープ (ローカル/グローバル) を定義します。可視性: 他の関数からアクセスできる関数の範囲 (パブリック/プロテクト/プライベート) を定義します。スコープは関数が呼び出されたときに有効になり、アクセス可能な変数を決定します。実際のケース: User クラスを例として、プロパティとメソッドの可視性の制限を示します。

PHP OOP 中函数调用的作用域和可见性

#PHP OOP における関数呼び出しのスコープと可視性

スコープ#関数のスコープは、関数にアクセスできる変数のスコープを定義します。 PHP には 2 種類のスコープがあります。

    ローカル スコープ:
  • 関数内で定義された変数は、その関数内でのみ表示されます。
  • グローバル スコープ:
  • 関数の外部で定義された変数は、スクリプト全体からアクセスできます。
可視性

関数の可視性は、他の関数がその関数にアクセスできる範囲を定義します。 PHP には 3 つの可視性レベルがあります。

    public:
  • 関数にはどこからでもアクセスできます。
  • protected:
  • 関数には、このクラスのサブクラスでのみアクセスできます。
  • private:
  • 関数には、このクラス内でのみアクセスできます。
関数呼び出しのスコープ

関数が呼び出されるとき、スコープの役割は、どの変数にアクセスできるかを決定することです。変数は、そのスコープ内の変数にのみアクセスできます。

次の例は、スコープが変数アクセスにどのような影響を与えるかを示しています:

<?php
$global_variable = "全球变量";

function myFunction() {
    $local_variable = "局部变量";
    echo "局部变量:$local_variable<br>";
    echo "全局变量:$global_variable<br>";
}

myFunction();
?>
ログイン後にコピー

出力:

局部变量:局部变量
全局变量:全球变量
ログイン後にコピー

実用的なケース

#ユーザー情報の処理に使用されるクラスを考えてみましょう:

<?php
class User {
    public $name;
    protected $email;
    private $password;

    public function __construct($name, $email, $password) {
        $this->name = $name;
        $this->email = $email;
        $this->password = $password;
    }

    public function getName() {
        return $this->name;
    }

    protected function getEmail() {
        return $this->email;
    }

    private function getPassword() {
        return $this->password;
    }
}

$user = new User("约翰·史密斯", "john.smith@example.com", "12345");

echo $user->getName(); // 约翰·史密斯
echo $user->getEmail(); // 错误:无法访问受保护属性
echo $user->getPassword(); // 错误:无法访问私有属性
?>
ログイン後にコピー
この例では:

$name
    は、どこでも Access で使用できるパブリック プロパティです。 。
  • $email
  • は保護されたプロパティであり、クラス とそのサブクラス内でのみアクセスできます。
  • $password
  • はプライベート プロパティであり、クラス内でのみアクセスできます。
  • getName()
  • は、どこからでも呼び出すことができるパブリック メソッドです。
  • getEmail()
  • は保護されたメソッドであり、「とその」クラスのサブクラスでのみ呼び出すことができます。
  • getPassword()
  • は、クラス内でのみ呼び出すことができるプライベート メソッドです。

以上がPHP OOP での関数呼び出しのスコープと可視性の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート