国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Home Backend Development PHP Tutorial Detailed explanation of commonly used keywords and magic methods in PHP object-oriented

Detailed explanation of commonly used keywords and magic methods in PHP object-oriented

Jul 10, 2017 am 11:46 AM
php Keywords use

1.construct()

The instantiated object is automatically called. Construct is called when construct and the function with the class name and function name exist at the same time, and the other one is not called.

The function with the class name and function name is the old version of the constructor.

2.destruct()

is called when deleting an object or when an object operation ends.

3.call()

The object calls a method. If the method does not exist, call this method

4.get()

Read an object property. If the object property is private, it will be called

5. set()

When assigning a value to an object property, it will be called if the property is private

6.toString()

It will be called when printing an object.

7.clone()

Called when cloning an object, such as: $a=new test(); $a1=clone $a;

8.sleep( )

Serialize was called before. If the object is larger than and you want to delete something during serialization, you can use it.

9.wakeup()

is called when Unserialize is used to do some object initialization work.

10.isset()

Detects whether an object's attributes exist. If the detected attribute is private, it will be called.

11.unset()

When deleting an object attribute, if the deleted object attribute is private, it will be called

12.set_state()

Called when var_export is called. Use the return value of set_state as the return value of var_export.

13.autoload()

When instantiating an object, if the corresponding class does not exist, this method will be used.


The following editor will bring you a detailed discussion of PHP object-orientedcommonly used keywords and magic methods. The editor thinks it’s pretty good, so I’ll share it with you now and give it as a reference. Let’s follow the editor and take a look.

Commonly used keywords in PHP object-oriented

final

1.Final cannot modify member attributes (this keyword is not used for constants in classes)

2.Final can only modify classes and methods

Function:

Classes modified with final cannot be inherited by subclasses

Methods modified with final cannot be overridden by subclasses

Used to restrict classes from being inherited, methods If not overridden, use final

<?php
//final修飾的類不能被繼承
final class Person{
  var $name;
  var $age;
  var $sex;

  function construct($name,$age,$sex){
    $this->name=$name;
    $this->age=$age;
    $this->sex=$sex;
  }

  function fun1(){
    echo $this->name;
  }
}

//Student類繼承類用final修飾的Person類,所以會報(bào)錯
class Student extends Person{
}

$stu=new Student("zs",20,"nan");

$stu->fun1();
?>

static (static keyword)

1. Use static to modify member properties and member methods, but not Modified class

2. Member attributes modified with static can be shared by all objects of the same class

3. Static data is stored in the data segment in memory (initializing the static segment)

4. Static data is allocated to memory when the class is loaded for the first time. When the class is used in the future, it is obtained directly from the data segment

5. What is a class being loaded? As long as this class is used in the program (this class name appears)

6. Static methods (static modified methods) cannot access non-static members (static members can be accessed in non-static methods)

Because non-static members must be accessed using objects, $this is used to access internal members. Static methods do not need to be called using objects, so there is no object. $this cannot represent objects. Non-static Members must also use objects

If you are sure that non-static members are not used in a method, you can declare this method as a static method

Note: Static members must use class names To access, don’tCreate an object, don’t use an object to access

Class name::static member

If you use static members in a class, you can use self to represent this class

const

1. It can only modify member attributes

2. Use const

# to declare constant attributes in a class ##3. The access method is the same as static member properties (use class name::constant outside the class and self::constant inside the class)

4. Constants must be given initial values ??when they are declared.

<?php
//定義一個類“人們”
class Person{
  protected $name;
  protected $age;
  protected $sex;
  static $country="中國";
  //聲明一個常量
  const RUN="走";

  //構(gòu)造方法
  function construct($name,$age,$sex){
    $this->name=$name;
    $this->age=$age;
    $this->sex=$sex;
  }

  function getCountry(){
    //如果在類中使用靜態(tài)成員,可以使用self代表本類
    return self::$country;
  }

  function say(){
    echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>";
  }

  protected function eat(){
    echo "吃飯!<br>";
  }

  function run(){
    //在類的內(nèi)部使用常量 self::常量
    echo self::RUN."<br>";
  }

  //聲明靜態(tài)的方法
  static function hello(){
    echo "你好<br>";
  }
}

Magic methods commonly used in PHP object-oriented

call()

Function: When calling a method that does not exist in the object, a system error will appear, and then the program will exit.

When to call automatically: It will be called automatically when calling a method that does not exist in an object

Handle some non-existent error calls

This method requires two Parameters

<?php
//定義一個類“人們”
class Person{
  protected $name;
  protected $age;
  protected $sex;
  static $country="中國";
  //聲明一個常量
  const RUN="走";

  //構(gòu)造方法
  function construct($name,$age,$sex){
    $this->name=$name;
    $this->age=$age;
    $this->sex=$sex;
  }

  function getCountry(){
    //如果在類中使用靜態(tài)成員,可以使用self代表本類
    return self::$country;
  }

  function say(){
    echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>";
  }

  protected function eat(){
    echo "吃飯!<br>";
  }

  function run(){
    //在類的內(nèi)部使用常量 self::常量
    echo self::RUN."<br>";
  }

  //處理一些不存在的錯誤調(diào)用
  //就會在調(diào)用一個對象中不存在的方法時就會自動調(diào)用
  function call($methodName,$args){
    //$methodName調(diào)用不存在方法的方法名 $args里面的參數(shù)
    echo "你調(diào)用的方法{$methodName}(參數(shù):";
    print_r($args);
    echo ")不存在<br>";
  }

  //聲明靜態(tài)的方法
  static function hello(){
    echo "你好<br>";
  }
}

$p=new Person("張三",20,"女");

$p->test(10,20,30);
$p->demo("aa","bb");
$p->say();
?>

toString()

is automatically called when directly outputting an object reference. It is the fastest way to quickly obtain a string representation. Method

<?php
//定義一個類“人們”
class Person{
  protected $name;
  protected $age;
  protected $sex;
  static $country="中國";
  //聲明一個常量
  const RUN="走";

  //構(gòu)造方法
  function construct($name,$age,$sex){
    $this->name=$name;
    $this->age=$age;
    $this->sex=$sex;
  }

  function say(){
    echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>";
  }

  function toString(){
    return self::$country."<br>{$this->name}<br>{$this->age}<br>{$this->sex}<br>".self::RUN;
  }
}

$p=new Person("張三",21,"女");
echo $p;
?>

clone()

Clone object is processed using clone()

Original (original object)

Copy (copied object)

clone() is a method automatically called when cloning an object

As soon as an object is created, there must be an initialization action, and The constructor method constuct has similar functions

在clone()方法中的$this關(guān)鍵字代表的是復(fù)本的對象,$that代表原本對象

<?php
//定義一個類“人們”
class Person{
  var $name;
  protected $age;
  protected $sex;
  static $country="中國";
  //聲明一個常量
  const RUN="走";

  //構(gòu)造方法
  function construct($name,$age,$sex){
    $this->name=$name;
    $this->age=$age;
    $this->sex=$sex;
  }

  function say(){
    echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>";
  }

  function clone(){
    $this->name="王五";
    $this->age=18;
    $this->sex="男";
  }

  function destruct(){
    echo $this->name."<br>";
  }
}

$p=new Person("張三",21,"女");
$p->say();
//這并不能叫做克隆對象,因?yàn)樵谖鰳?gòu)時只析構(gòu)一次
/*$p1=$p;
$p1->name="李四";
$p1->say();*/

$p1= clone $p;
$p1->say();
?>

autoload()

注意:其它的魔術(shù)方法都是在類中添加起作用,這是唯一一個不在類中添加的方法

只要在頁面中使用到一個類,只要用到類名,就會自動將這個類名傳給這個參數(shù)

<?php
function autoload($className){
  include "./test/".$className.".class.php";
}

  $o=new One;
  $o->fun1();  

  $t=new Two;
  $t->fun2();

  $h=new Three;
  $h->fun3();

?>

test里的文件

one.class.php

<?php
class One{
  function fun1(){
    echo "The Class One<br>";
  }
}
?>

two.class.php

<?php
class Two{
  function fun2(){
    echo "The Class Two<br>";
  }
}
?>

three.class.php

<?php
class Three{
  function fun3(){
    echo "The Class Three<br>";
  }
}
?>

對象串行化(序列化):將一個對象轉(zhuǎn)為二進(jìn)制串(對象是存儲在內(nèi)存中的,容易釋放)

使用時間:

1.將對象長時間存儲在數(shù)據(jù)庫或文件中時

2.將對象在多個PHP文件中傳輸時

serialize(); 參數(shù)是一個對象,返回來的就是串行化后的二進(jìn)制串

unserialize(); 參數(shù)就是對象的二進(jìn)制串,返回來的就是新生成的對象

sleep()

是在序列化時調(diào)用的方法

作用:就是可以將一個對象部分串行化

只要這個方法中返回一個數(shù)組,數(shù)組中有幾個成員屬性就序列化幾個成員屬性,如果不加這個方法,則所有成員都被序列化

wakeup()

是在反序列化時調(diào)用的方法

也是對象重新誕生的過程

<?php
//定義一個類“人們”
class Person{
  var $name;
  protected $age;
  protected $sex;
  static $country="中國";
  //聲明一個常量
  const RUN="走";

  //構(gòu)造方法
  function construct($name,$age,$sex){
    $this->name=$name;
    $this->age=$age;
    $this->sex=$sex;
  }

  function say(){
    echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>";
  }

  function clone(){
    $this->name="王五";
    $this->age=18;
    $this->sex="男";
  }

  //是在序列化時調(diào)用的方法,可以部分串行化對象
  function sleep(){
    return array("name","age");
  }

  //是在反序列化時調(diào)用的方法,也是對象重新誕生的過程??梢愿淖兝锩娴闹?
  function wakeup(){
    $this->name="sanzhang";
    $this->age=$this->age+1;
  }

  function destruct(){

  }
}
?>

read.php

<?php
  require "11.php";
  
  $str=file_get_contents("mess.txt");
  $p=unserialize($str);

  echo $p->say();
?>

write.php

<?php
  require "11.php";

  $p=new Person("張三",18,"男");

  $str=serialize($p);

  file_put_contents("mess.txt",$str);
?>

The above is the detailed content of Detailed explanation of commonly used keywords and magic methods in PHP object-oriented. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to handle File Uploads securely in PHP? How to handle File Uploads securely in PHP? Jul 08, 2025 am 02:37 AM

To safely handle PHP file uploads, you need to verify the source and type, control the file name and path, set server restrictions, and process media files twice. 1. Verify the upload source to prevent CSRF through token and detect the real MIME type through finfo_file using whitelist control; 2. Rename the file to a random string and determine the extension to store it in a non-Web directory according to the detection type; 3. PHP configuration limits the upload size and temporary directory Nginx/Apache prohibits access to the upload directory; 4. The GD library resaves the pictures to clear potential malicious data.

How Do You Pass Variables by Value vs. by Reference in PHP? How Do You Pass Variables by Value vs. by Reference in PHP? Jul 08, 2025 am 02:42 AM

InPHP,variablesarepassedbyvaluebydefault,meaningfunctionsorassignmentsreceiveacopyofthedata,whilepassingbyreferenceallowsmodificationstoaffecttheoriginalvariable.1.Whenpassingbyvalue,changestothecopydonotimpacttheoriginal,asshownwhenassigning$b=$aorp

How Do Generators Work in PHP? How Do Generators Work in PHP? Jul 11, 2025 am 03:12 AM

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

PHP header location ajax call not working PHP header location ajax call not working Jul 10, 2025 pm 01:46 PM

The reason why header('Location:...') in AJAX request is invalid is that the browser will not automatically perform page redirects. Because in the AJAX request, the 302 status code and Location header information returned by the server will be processed as response data, rather than triggering the jump behavior. Solutions are: 1. Return JSON data in PHP and include a jump URL; 2. Check the redirect field in the front-end AJAX callback and jump manually with window.location.href; 3. Ensure that the PHP output is only JSON to avoid parsing failure; 4. To deal with cross-domain problems, you need to set appropriate CORS headers; 5. To prevent cache interference, you can add a timestamp or set cache:f

How to prevent session hijacking in PHP? How to prevent session hijacking in PHP? Jul 11, 2025 am 03:15 AM

To prevent session hijacking in PHP, the following measures need to be taken: 1. Use HTTPS to encrypt the transmission and set session.cookie_secure=1 in php.ini; 2. Set the security cookie attributes, including httponly, secure and samesite; 3. Call session_regenerate_id(true) when the user logs in or permissions change to change to change the SessionID; 4. Limit the Session life cycle, reasonably configure gc_maxlifetime and record the user's activity time; 5. Prohibit exposing the SessionID to the URL, and set session.use_only

How to URL encode a string in PHP with urlencode How to URL encode a string in PHP with urlencode Jul 11, 2025 am 03:22 AM

The urlencode() function is used to encode strings into URL-safe formats, where non-alphanumeric characters (except -, _, and .) are replaced with a percent sign followed by a two-digit hexadecimal number. For example, spaces are converted to signs, exclamation marks are converted to!, and Chinese characters are converted to their UTF-8 encoding form. When using, only the parameter values ??should be encoded, not the entire URL, to avoid damaging the URL structure. For other parts of the URL, such as path segments, the rawurlencode() function should be used, which converts the space to . When processing array parameters, you can use http_build_query() to automatically encode, or manually call urlencode() on each value to ensure safe transfer of data. just

How to access a character in a string by index in PHP How to access a character in a string by index in PHP Jul 12, 2025 am 03:15 AM

In PHP, you can use square brackets or curly braces to obtain string specific index characters, but square brackets are recommended; the index starts from 0, and the access outside the range returns a null value and cannot be assigned a value; mb_substr is required to handle multi-byte characters. For example: $str="hello";echo$str[0]; output h; and Chinese characters such as mb_substr($str,1,1) need to obtain the correct result; in actual applications, the length of the string should be checked before looping, dynamic strings need to be verified for validity, and multilingual projects recommend using multi-byte security functions uniformly.

PHP get the first N characters of a string PHP get the first N characters of a string Jul 11, 2025 am 03:17 AM

You can use substr() or mb_substr() to get the first N characters in PHP. The specific steps are as follows: 1. Use substr($string,0,N) to intercept the first N characters, which is suitable for ASCII characters and is simple and efficient; 2. When processing multi-byte characters (such as Chinese), mb_substr($string,0,N,'UTF-8'), and ensure that mbstring extension is enabled; 3. If the string contains HTML or whitespace characters, you should first use strip_tags() to remove the tags and trim() to clean the spaces, and then intercept them to ensure the results are clean.

See all articles

<sup id="iyb4n"></sup>