Rumah > pembangunan bahagian belakang > PHP7 > Analisis ringkas tentang penggunaan kelas tanpa nama dalam PHP7

Analisis ringkas tentang penggunaan kelas tanpa nama dalam PHP7

青灯夜游
Lepaskan: 2023-02-18 10:20:01
ke hadapan
2192 orang telah melayarinya

Selepas PHP7, ciri kelas tanpa nama telah ditambahkan pada PHP. Kelas tanpa nama dan kaedah tanpa nama menjadikan PHP bahasa yang lebih moden dan menjadikan pembangunan kod kami berfungsi lebih dan lebih mudah. Artikel berikut akan memperkenalkan anda secara ringkas tentang penggunaan kelas tanpa nama PHP7 Saya harap ia akan membantu anda!

Analisis ringkas tentang penggunaan kelas tanpa nama dalam PHP7

Kelas tanpa nama adalah seperti kelas yang tidak ditakrifkan terlebih dahulu, tetapi diwujudkan secara langsung apabila ia ditakrifkan.

// 直接定义
$objA = new class{
    public function getName(){
        echo "I'm objA";
    }
};
$objA->getName();
 
 
// 方法中返回
function testA(){
    return new class{
        public function getName(){
            echo "I'm testA's obj";
        }
    };
}
 
$objB = testA();
$objB->getName();
 
 
// 作为参数
function testB($testBobj){
    echo $testBobj->getName();
}
 
testB(new class{
        public function getName(){
            echo "I'm testB's obj";
        }
});
Salin selepas log masuk
// 继承、接口、访问控制等
class A{
    public $propA = 'A';
    public function getProp(){
        echo $this->propA;
    }
}
trait B{
    public function getName(){
        echo 'trait B';
    }
}
interface C{
    public function show();
}
$p4 = 'b4';
$objC = new class($p4) extends A implements C{
    use B;
    private $prop1 = 'b1';
    protected $prop2 = 'b2';
    public $prop3 = 'b3';
 
    public function __construct($prop4){
        echo $prop4;
    }
 
    public function getProp(){
        parent::getProp();
        echo $this->prop1, '===', $this->prop2, '===', $this->prop3, '===', $this->propA;
        $this->getName();
        $this->show();
    }
    public function show(){
        echo 'show';
    }
};
 
$objC->getProp();
 
// 匿名类的名称是通过引擎赋予的
var_dump(get_class($objC));
 
// 声明的同一个匿名类,所创建的对象都是这个类的实例
var_dump(get_class(testA()) == get_class(testA()));
Salin selepas log masuk

Ahli statik dalam kelas tanpa nama adalah sama seperti ahli statik tergolong dalam kelas dan bukannya contoh.

// 静态变量
function testD()
{
    return new class{
        public static $name;
    };
}
$objD1 = testD();
$objD1::$name = 'objD1';
 
$objD2 = testD();
$objD2::$name = 'objD2';
 
echo $objD1::$name;
Salin selepas log masuk

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Analisis ringkas tentang penggunaan kelas tanpa nama dalam PHP7. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:csdn.net
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan