php self

Aug 08, 2016 am 09:23 AM
echo function public quot self

php类中的this,self,parent

this代表当前对象,self代表当前类,parent代表父类,这个解释很晦涩,下面结合例子具体说明一下self

php类的定义和对象(实例)的存储是分开的,类的定义只有一份,实例可以有多个。self就代表类定义

类的定义主要包括方法(类的属性可以动态添加),不严谨的说,方法是属于类的,属性是属于对象的。

那么理论上通过类名就可以调用类的所有方法(包括静态,非静态,注意访问限制),包括继承来的,从这个角度来说self==当前类。

所以
通过self,类名可以调用本类的常规方法,静态方法,父类的方法(后记,如方法中用了this,会报运行时错误,但语法没有问题)
Salin selepas log masuk
<pre name="code" class="php">class A
{
    public static $count=1;
    const N = 10; 
    private $_a = "_a \n";
    protected $_b = "_b \n";
    public $c = "c \n";

    public function n() {
        echo  __METHOD__."\n";
    }   

    public function func() {
        echo  __METHOD__." " .$this->c;
    }   

    public static function f() {
        echo  __METHOD__."\n";
    }   

    public static function fn() {
        echo __METHOD__." " .self::N."\n";
    }   
}

class B extends A
{
    const N = 100;

    public static $count=1;
    public $p = "pp\n";

    public function d() {
        echo __METHOD__." ".$this->p." \n";
    }   

    public  function e() {
        self::n();
        echo __METHOD__." \n";
    }

    public static function f(){
        self::e();
        self::n();
        echo __METHOD__."\n";
    }

    public function func() {
        parent::func();
        echo "func\n";
    }
}

echo "=========B:e()=========\n";
B::e();

echo "=========B:n()=========\n";
B::n();

echo "=========B:f()=========\n";
B::f();

echo "=========B:d()=========\n";
B::d(); // 运行时错误error
Salin selepas log masuk

Salin selepas log masuk

以上就介绍了php self,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Mengapa NameResolutionError(self.host, self, e) daripada e dan cara menyelesaikannya Mengapa NameResolutionError(self.host, self, e) daripada e dan cara menyelesaikannya Mar 01, 2024 pm 01:20 PM

Sebab ralat adalah NameResolutionError(self.host,self,e)daripada, yang merupakan jenis pengecualian dalam pustaka urllib3 Sebab ralat ini adalah bahawa resolusi DNS gagal, iaitu nama hos atau alamat IP yang telah cuba diselesaikan tidak dapat ditemui. Ini mungkin disebabkan oleh alamat URL yang dimasukkan tidak betul atau pelayan DNS tidak tersedia buat sementara waktu. Bagaimana untuk menyelesaikan ralat ini Mungkin terdapat beberapa cara untuk menyelesaikan ralat ini: Semak sama ada alamat URL yang dimasukkan adalah betul dan pastikan ia boleh diakses Pastikan pelayan DNS tersedia, anda boleh cuba menggunakan arahan "ping" dalam baris arahan untuk menguji sama ada pelayan DNS tersedia Cuba akses tapak web menggunakan alamat IP dan bukannya nama hos jika di belakang proksi

Apakah maksud fungsi? Apakah maksud fungsi? Aug 04, 2023 am 10:33 AM

Fungsi bermaksud fungsi. Ia adalah blok kod yang boleh digunakan semula dengan fungsi tertentu Ia boleh menerima parameter input, melakukan operasi tertentu, dan mengembalikan hasil daripada blok yang boleh digunakan semula. kod untuk meningkatkan kebolehgunaan semula dan kebolehselenggaraan kod.

Apakah perbezaan antara versi pembangun dan versi awam iOS? Apakah perbezaan antara versi pembangun dan versi awam iOS? Mar 01, 2024 pm 12:55 PM

Setiap tahun sebelum Apple mengeluarkan versi utama baharu iOS dan macOS, pengguna boleh memuat turun versi beta beberapa bulan lebih awal untuk mengalaminya terlebih dahulu. Memandangkan perisian ini digunakan oleh orang awam dan pembangun, Apple telah melancarkan versi pembangun dan awam, yang merupakan versi beta awam bagi versi beta pembangun, untuk kedua-duanya. Apakah perbezaan antara versi pembangun dan versi awam iOS? Secara literal, versi pembangun ialah versi ujian pembangun dan versi awam ialah versi ujian awam. Versi pembangun dan versi awam menyasarkan khalayak yang berbeza. Versi pembangun digunakan oleh Apple untuk ujian oleh pembangun Anda memerlukan akaun pembangun Apple untuk memuat turun dan meningkatkannya.

Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Jan 30, 2024 am 09:08 AM

Dalam era perkembangan teknologi yang pesat hari ini, bahasa pengaturcaraan bermunculan seperti cendawan selepas hujan. Salah satu bahasa yang telah menarik perhatian ramai ialah bahasa Go, yang digemari oleh ramai pembangun kerana kesederhanaan, kecekapan, keselamatan serentak dan ciri-ciri lain. Bahasa Go terkenal dengan ekosistemnya yang kukuh dengan banyak projek sumber terbuka yang sangat baik. Artikel ini akan memperkenalkan lima projek sumber terbuka bahasa Go yang dipilih dan membawa pembaca untuk meneroka dunia projek sumber terbuka bahasa Go. KubernetesKubernetes ialah enjin orkestrasi kontena sumber terbuka untuk automatik

Bagaimana untuk menggunakan diri dalam Python Bagaimana untuk menggunakan diri dalam Python May 17, 2023 pm 10:40 PM

Sebelum memperkenalkan penggunaan diri dalam Python, mari kita mula-mula memperkenalkan kelas dan contoh dalam Python diwakili oleh kelas Pelajar. Instance ialah "objek" khusus yang dibuat berdasarkan kelas Setiap objek mewarisi kaedah yang sama daripada kelas, tetapi datanya mungkin berbeza. 1. Ambil kelas Pelajar sebagai contoh Dalam Python, kelas ditakrifkan seperti berikut: classStudent(object):pass(Object) menunjukkan kelas mana yang diwarisi oleh kelas Object

Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Mar 24, 2024 pm 01:15 PM

"Go Language Development Essentials: 5 Syor Rangka Kerja Popular" Sebagai bahasa pengaturcaraan yang pantas dan cekap, bahasa Go digemari oleh semakin ramai pembangun. Untuk meningkatkan kecekapan pembangunan dan mengoptimumkan struktur kod, ramai pembangun memilih untuk menggunakan rangka kerja untuk membina aplikasi dengan cepat. Dalam dunia bahasa Go, terdapat banyak rangka kerja yang sangat baik untuk dipilih. Artikel ini akan memperkenalkan 5 rangka kerja bahasa Go yang popular dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan rangka kerja ini dengan lebih baik. 1.GinGin ialah rangka kerja web yang ringan dengan pantas

Pembangunan Laravel: Bagaimana untuk melaksanakan komunikasi WebSockets menggunakan Laravel Echo dan Pusher? Pembangunan Laravel: Bagaimana untuk melaksanakan komunikasi WebSockets menggunakan Laravel Echo dan Pusher? Jun 13, 2023 pm 05:01 PM

Laravel ialah rangka kerja PHP popular yang sangat berskala dan cekap Ia menyediakan banyak alat dan perpustakaan yang berkuasa yang membolehkan pembangun membina aplikasi web berkualiti tinggi dengan cepat. Antaranya, LaravelEcho dan Pusher ialah dua alat yang sangat penting di mana komunikasi WebSockets boleh dilaksanakan dengan mudah Artikel ini akan memperincikan cara menggunakan kedua-dua alat ini dalam aplikasi Laravel. Apakah itu WebSockets? WebSockets

Penjelasan terperinci tentang peranan dan penggunaan kata kunci gema dalam PHP Penjelasan terperinci tentang peranan dan penggunaan kata kunci gema dalam PHP Jun 28, 2023 pm 08:12 PM

Penjelasan terperinci tentang peranan dan penggunaan kata kunci gema dalam PHP PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas, yang digunakan secara meluas dalam pembangunan web. Kata kunci gema ialah kaedah yang digunakan untuk mengeluarkan kandungan dalam PHP. Artikel ini akan memperkenalkan secara terperinci fungsi dan penggunaan kata kunci gema. Fungsi: Fungsi utama kata kunci gema adalah untuk mengeluarkan kandungan ke penyemak imbas. Dalam pembangunan web, kita perlu mempersembahkan data secara dinamik ke halaman hadapan Pada masa ini, kita boleh menggunakan kata kunci gema untuk mengeluarkan data ke halaman. e

See all articles