Home  >  Article  >  Backend Development  >  PHP object-oriented study notes one Basic concepts_PHP tutorial

PHP object-oriented study notes one Basic concepts_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:15:50742browse

1> if( "false" ) is equivalent to if( true), because a non-empty string is true
2> Check the data type:
is_array();
is_object();
is_string ();
is_null();
is_integer();
3> PHP5 introduces class type hints (type hints), which are used to constrain the parameter type of a method (not the basic data type, but the class ): Put the class name before the method parameters that need to be constrained.
For example: function write( ShopProduct $shopProduct){}

4> instanceof operator: If the object of the left operand is the right operand The type shown, the result is true
For example: if( $shopProduct instanceof BookProduct ) {}

5> Inherit class son extends parent{}
To call the method of the parent class, such as the constructor , use parent::__construct();

6> Static methods and properties
class StaticExample{
static public $a;
static public function hello(){}
}
External access uses::
For example: print StaticExample::$a;
Internal access uses self::
For example: self::$a;

7> Abstract class , abstract method
abstract class xxx{
...
abstract function write(); //No {}
}

Subclasses of abstract classes must re-declare methods and Implementation. The access control of newly implemented methods cannot be stricter than the access control of abstract methods.

8>Interface interface
only defines functions and does not include implementation. The interface can contain attribute and method declarations, But the method body is empty;
For example: interface a{
public function b();
}
Any class that implements an interface must implement all methods defined in the interface, otherwise it must be abstract Class.
A class uses implements in the declaration to implement an interface.
class Shop implements a{
public function b(){
...
}
}

9> exception exception
PHP5 introduces exception class

10> interceptor interceptor
__get($property); is called when accessing undefined properties
__set($property ,$value); Called when assigning a value to an undefined property
__isset($property); Called when using isset() for an undefined property;
__unset($property); Called for an undefined property Called when unset() is called;
__call($method, $arg_array); Called when an undefined method is called
Example: Implementation of __get()

Copy the code The code is as follows:

function __get($property){
$method="get{$property}";
if(method_exists($this ,$method)){
return $this->$method();
}
}

function getName(){ return "Bob";}

function __isset($property){
$method="get{$porperty}";
return(method_exists($this, $method));
}

function __set( $property, $value){
$method="set{$property}";
if( method_exists($this,$method)){
return $this->$method($value ; 🎜>class CopyMe();
$first= new CopyMe();
$second=$first;
// PHP4: $first and $second are two completely different objects;
// PHP5: $first and $second point to the same object
In PHP5, object assignment and transfer are references.
If you want to copy, you need to use: $second= clone $first; //Now $ first and $second are two completely different objects, (by_value copy)
If you want to control copying, you must implement a special method __clone()

13> Automatic loading: __autoload()
PHP5 introduces the __autoload() interceptor method to automatically include class files. When PHP encounters an operation that attempts to instantiate an unknown class, it will try to call the __autoload() method and pass the class name as a string parameter. Give it.
For example a very simple automatic positioning and inclusion strategy:
function __autoload( $classname){
include_once "$classname.php";
}

== ==================
14>Use string to dynamically reference classes



Copy code

Code As follows:


$classname="Task";
require_once("tasks/{$classname}.php);
$myObj= new $classname(); $ method="getTitle"; $myObj->$method(); //Dynamic method
15> Class function and object function



Copy code

The code is as follows:

class_exist(); //Check whether the class exists
get_declared_classes(); //Get all classes defined in the current script process ( Returned in array form)
get_class_methods();//List of all public methods in the class (array) method_exist($objname,$method); //Whether the method of the object or class existsis_callable() ;//Methods of objects or classes not only exist, but can be accessed get_class_vars(); // Attributes get_parent_class (class or object name); // Parent class
is_subclass_of(); // Whether it is a child Class, regardless of interface, the interface uses the instanceof operator


16> Reflection API
consists of a series of built-in classes that can analyze properties, methods, classes and parameters, and can dynamically obtain information and dynamically call methods.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/326065.htmlTechArticle1 if( "false" ) is equivalent to if( true), because a non-empty string is true 2 Check Data type: is_array(); is_object(); is_string(); is_null(); is_integer(); 3 PHP5 introduces type hints for classes...
Statement:
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