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.
http://www.bkjia.com/PHPjc/326065.htmlwww.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...