php5 学习记要(1)

Jun 13, 2016 am 10:49 AM
class function obj print

php5 学习记录(1)

一、php5主要的新特性

1.public /private/protected访问修饰符,针对对象中的方法和属性。

可以使用通用的面向对象访问修饰符来控制方法和属性的访问级别:

class MyClass {

    private $id = 18;    public function getId() {        return $this->id;    }}
Salin selepas log masuk
?

2.统一的构造函数名称__construct().

为避免构造函数的名字和类的名字相同,现在用__construct()来声明,从而让你更加容易在类的分层中转移类:

?

class MyClass {    function __construct() {        print 'Inside constructor';    }}
Salin selepas log masuk

?

? 3.通过__destructor()定义对象的析构方法。

允许定义一个析构函数来注销一个对象:

?

class MyClass {    function __destruct() {        print ' Destroying object';    }}
Salin selepas log masuk

?

? 4.接口。

一个使用接口的类可以加载不止一个相关的接口。一个类只能继承自另一个类,但是可以实现任意多个接口:

?

interface Display {    function display();}class Circle implements Display {    function dispaly() {        print ' Dispalying circle \n';    }}
Salin selepas log masuk

?

? 5.instanceof操作符。

instanceof用来检测一个给定的对象是否属于(继承于)某个类(class)、某个类的子类、某个接口(interface)。如果是则返回true。

?

if ($obj instanceof Circle) {    print '$obj is a Circle';}
Salin selepas log masuk
?

?

?

6.Final 标记方法。

Final关键字允许你用来标识方法,使其不能被子类重载。

?

class MyClass {    final function getBaseClassName() {        return __CLASS__;    }}
Salin selepas log masuk
?

?

7.Final标记类。

声明一个类为final类型后,它将不能被继承。下面的例子将报错。

?

final class FinalClass {}class BogusClass extends FinalClass {}
Salin selepas log masuk

?

?

8.强制复制对象

为了克隆一个对象,你必须使用clone关键字。你可以再类中声明一个__clone()方法,它将在克隆过程中被调用(调用在属性和方法从原对象复制过来以后进行):

?

class MyClas {    function __clone() {        print 'Object is being cloned';    }}$obj = new MyClass();$obj_copy = clone $obj;
Salin selepas log masuk
?

?

9.类中的常量。

类定义中现在包含常量,而且可以用类来引用:

?

class MyClass {    const SUCCESS = "Success";    const FAILURE = "Failure";}print MyClass::SUCCESS;
Salin selepas log masuk

?

? 10.静态方法。

你现在可以定义静态方法,不用实例化就能使用他们。静态方法不能使用$this变量,因为它们并没有绑定到任何具体的对象:

class MyClass {

    static function helloWorld() {        print 'Hello world';    }}MyClass::helloWorld();
Salin selepas log masuk

?

11.静态成员。

类的定义现在包含静态成员(属性),可以通过类自身来访问。通常用的最多的是单件(Singleton)模式:

?

class Singleton {    static private $instance = NULL;    private function __construct() {    }    static public function getInstance() {        if (sell::$instance == NULL) {            self::$instance = new Singleton();        }        return self::$instance;    }}
Salin selepas log masuk

?

?

12.抽象类。

把类声明为抽象类可以防止它被实例化。但是你可以继承一个抽象类:

?

abstract class MyBaseClass {    function dispaly() {        print 'Default dispaly routine being called';    }}
Salin selepas log masuk
?

?

13.抽象方法。

把方法声明为抽象的,以便在继承的子类中再去定义。包含抽象方法的类本身必须是一个抽象类:

?

abstact class MyBaseClass {    abstract function dispaly();}
Salin selepas log masuk

?

? 14.对象类型提示。

函数声明中可以对参数进行对象类型提示。如果函数调用的时候没有传递正确的对象类型,系统报错:

?

function expectsMyClass(MyClass $obj) {}
Salin selepas log masuk

?

? 15.支持连续引用方法返回的对象。

在PHP4中,你不能直接引用方法返回的对象。你必须先赋值到一个中间变量,然后再使用该变量来引用。

php 4:

?

$dummy = $obj->method();$dummy->method2();
Salin selepas log masuk

?

? php 5:

?

$obj->method()->method2();
Salin selepas log masuk

?

?

16.迭代。

php5允许php类和php继承类实现iterator接口。在实现迭代接口后,你可以用foreach()语言结构遍历一个类的实例:

?

$obj = new MyIteratorImplementaion();foreach ($obj as $value) {    print $value;}
Salin selepas log masuk

?

?

17.__autoload()方法。

__autoload()函数在你需要使用一个未定义的类的时候自动调用。通过调用这个函数,脚本的引擎在php抛出类未定义的错误之前提供最后一次加载类的机会:

?

function __autoload($class_name) {    include_once($class_name . "php");}$obj = new MyClass();$obj2 = new MyClass2();
Salin selepas log masuk
?

18.异常处理。

php5增加了著名的try/throw/catch架构的异常处理范例。使用时,你只能抛出从Exception类继承的对象:

class SQLException extends Exception {

    public $problem;    function __construct($problem) {        $this->problem = $problem;    }}try{ ...     throw new SQLException("Couldn't connect to database"); ...} catch (SQLException $e) {     print "SQLException";} catch (Exception $e) {    print 'Other Exception';}
Salin selepas log masuk

?

19.foreach 函数支持引用。

在php 4中,你不能遍历一个数组的同时更改它的值。但是php 5可以通过给foreach()循环的参数加速&(引用)符号,让你在遍历数组的循环中更改数组的值:

?

foreach ($array as &$value) {    if ($value === "NULL") {        $VALUE = NULL    }}
Salin selepas log masuk

?

? 20.给引用参数设置默认值。

在php 4中,你只能给传递值的参数设置默认值。php 5 现在可以让你给传递引用的参数设置默认值:

?

function my_func(&$arg = null) {    if ($arg === NULL) {        print '$arg is empty';    }}my_func();
Salin selepas log masuk
?

?

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

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)

Cara menggunakan kelas dan kaedah dalam Python Cara menggunakan kelas dan kaedah dalam Python Apr 21, 2023 pm 02:28 PM

Konsep dan kejadian kelas dan kaedah Kelas (Kelas): digunakan untuk menerangkan koleksi objek dengan sifat dan kaedah yang sama. Ia mentakrifkan sifat dan kaedah yang biasa kepada setiap objek dalam koleksi. Objek ialah contoh kelas. Kaedah: Fungsi yang ditakrifkan dalam kelas. Kaedah pembinaan kelas __init__(): Kelas mempunyai kaedah khas (kaedah pembinaan) bernama init(), yang dipanggil secara automatik apabila kelas dijadikan instantiated. Pembolehubah instance: Dalam pengisytiharan kelas, atribut diwakili oleh pembolehubah tersebut dipanggil pembolehubah instance. Instantiation: Buat contoh kelas, objek khusus kelas. Warisan: iaitu, kelas terbitan (derivedclass) mewarisi kelas asas (baseclass)

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.

Gantikan nama kelas elemen menggunakan jQuery Gantikan nama kelas elemen menggunakan jQuery Feb 24, 2024 pm 11:03 PM

jQuery ialah perpustakaan JavaScript klasik yang digunakan secara meluas dalam pembangunan web Ia memudahkan operasi seperti pengendalian acara, memanipulasi elemen DOM, dan melaksanakan animasi pada halaman web. Apabila menggunakan jQuery, anda sering menghadapi situasi di mana anda perlu menggantikan nama kelas elemen Artikel ini akan memperkenalkan beberapa kaedah praktikal dan contoh kod tertentu. 1. Gunakan kaedah removeClass() dan addClass() jQuery menyediakan kaedah removeClass() untuk pemadaman

python中class是什么意思 python中class是什么意思 May 21, 2019 pm 05:10 PM

class是python中的一个关键字,用来定义一个类,定义类的方法:class后面加一个空格然后加类名;类名规则:首字母大写,如果多个单词用驼峰命名法,如【class Dog()】。

Penjelasan terperinci tentang penggunaan Kelas PHP: Jadikan kod anda lebih jelas dan mudah dibaca Penjelasan terperinci tentang penggunaan Kelas PHP: Jadikan kod anda lebih jelas dan mudah dibaca Mar 10, 2024 pm 12:03 PM

Apabila menulis kod PHP, menggunakan kelas adalah amalan yang sangat biasa. Dengan menggunakan kelas, kami boleh merangkum fungsi dan data yang berkaitan dalam satu unit, menjadikan kod lebih jelas, lebih mudah dibaca dan lebih mudah diselenggara. Artikel ini akan memperkenalkan penggunaan PHPClass secara terperinci dan menyediakan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik cara menggunakan kelas dalam projek sebenar untuk mengoptimumkan kod. 1. Cipta dan gunakan kelas Dalam PHP, anda boleh menggunakan kelas kata kunci untuk mentakrifkan kelas dan mentakrifkan sifat dan kaedah dalam kelas.

Ralat Vue: Tidak dapat menggunakan v-bind untuk mengikat kelas dan gaya dengan betul, bagaimana untuk menyelesaikannya? Ralat Vue: Tidak dapat menggunakan v-bind untuk mengikat kelas dan gaya dengan betul, bagaimana untuk menyelesaikannya? Aug 26, 2023 pm 10:58 PM

Ralat Vue: Tidak dapat menggunakan v-bind untuk mengikat kelas dan gaya dengan betul, bagaimana untuk menyelesaikannya? Dalam pembangunan Vue, kami sering menggunakan arahan v-bind untuk mengikat kelas dan gaya secara dinamik, tetapi kadangkala kami mungkin menghadapi beberapa masalah, seperti tidak dapat menggunakan v-bind dengan betul untuk mengikat kelas dan gaya. Dalam artikel ini, saya akan menerangkan punca masalah ini dan memberi anda penyelesaian. Pertama, mari kita fahami arahan v-bind. v-bind digunakan untuk mengikat V

Apakah tujuan fungsi 'enumerate()' dalam Python? Apakah tujuan fungsi 'enumerate()' dalam Python? Sep 01, 2023 am 11:29 AM

Dalam artikel ini, kita akan belajar tentang fungsi enumerate() dan tujuan fungsi "enumerate()" dalam Python. Apakah fungsi enumerate()? Fungsi enumerate() Python menerima pengumpulan data sebagai parameter dan mengembalikan objek penghitungan. Objek penghitungan dikembalikan sebagai pasangan nilai kunci. Kuncinya ialah indeks yang sepadan dengan setiap item, dan nilainya ialah item. Syntax enumerate(iterable,start) Parameters iterable - Yang diluluskan dalam pengumpulan data boleh dikembalikan sebagai objek enumeration, dipanggil iterablestart - Seperti namanya, indeks permulaan objek enumeration ditakrifkan oleh permulaan. kalau kita abaikan

Cara SpringBoot menyulitkan dan melindungi fail kelas melalui pemuat kelas tersuai Cara SpringBoot menyulitkan dan melindungi fail kelas melalui pemuat kelas tersuai May 11, 2023 pm 09:07 PM

Latar Belakang Baru-baru ini, kod perniagaan utama telah disulitkan untuk rangka kerja syarikat untuk mengelakkan kod kejuruteraan daripada mudah dipulihkan melalui alat penyahkompilasi seperti jd-gui Konfigurasi dan penggunaan skim pengeliruan yang berkaitan adalah agak rumit dan terdapat banyak masalah untuk projek springboot, jadi fail kelas disulitkan dan kemudiannya Peloder kelas tersuai dinyahsulit dan dimuatkan Penyelesaian ini tidak benar-benar selamat Ia hanya meningkatkan kesukaran penyahkompilasian Ia menghalang lelaki tetapi bukan penjahat dalam rajah di bawah. Pemalam maven menyulitkan kompilasi menggunakan pemalam maven tersuai Fail kelas yang ditentukan disulitkan, dan fail kelas yang disulitkan disalin ke laluan yang ditentukan.

See all articles