This article analyzes the conceptual usage of closures in PHP programming with examples and shares it with everyone for your reference. The specific analysis is as follows:
Generally speaking, a closure is an anonymous function in PHP, but unlike a function, a closure can use the value of a variable in the scope where the function is declared through use.
The specific form is as follows:
$a = function($arg1, $arg2) use ($variable) { // 声明函数闭包到变量$a, 参数为$arg1, $arg2 ,该闭包需使用$variable变量 }
Specific usage examples are as follows:
<?php $result = 0; $one = function() { var_dump($result); }; $two = function() use ($result) { var_dump($result); }; // 可以认为 $two这个变量 本身记录了该函数的声明以及use使用的变量的值 $three = function() use (&$result) { var_dump($result); }; $result++; $one(); // outputs NULL: $result is not in scope $two(); // outputs int(0): $result was copied $three(); // outputs int(1) ?>
I hope this article will be of some reference and help to everyone’s learning of PHP programming.
There were a few clerical errors, which have now been corrected!
$arr = $this->GetRecord($SQL);//Isn’t this calling a method in the parent class?
I told you, what is inheritance, it means that the subclass has all the members of the parent class (in the case of inheritability), you can use the parent class members through the scope connector, or you can use the $this key Words (static, private ones don’t work!!!!!)! ! ! ! ! ! !
How to understand object-oriented programming:
Give you an example:
class student{
public $name;
public statics $age;
public function set_name( $name){
$this->name=$name;//This is correct
self::$name=$name;//Correct
$name=$name;//This Sentence error
}
public function set_age($age){
$this->age=$age;//Error
self::$age=$age;//Correct
}
}
//Why is this? That is to say, if you want other members in the class, then you have to pass the
//$this keyword, or the scope resolver , but if it is a static member, you cannot use $this to access it to reference it, and you cannot use it directly like ordinary code.
$this->name You can understand it this way, the student's name, that is, $this represents is the class name
class boy_student extents students{
//This class extends from students, which means it has all members of the students class,
//Of course you can also add members that students do not have
$aadress;
:
:
:
//If you want to apply the method of the parent class: you can do this:
parent::set_name(....)
//Of course, the things involved here can fill a book. It does not mean that some parent class members can be accessed by subclasses, and some cannot even be inherited. This involves visibility issues!
}
************************************
$this->xxx is instantiated Is it called?
******************************
This is not instantiation. What is instantiation? , that is to say, what we just defined is an abstract thing, just like students, he is a category;
$zhangshan = new students();
This is actualization, understand!
:: is a static access method, which is only related to the class itself and has nothing to do with the class object, so the direct call is class name:: method name
because the PHP language itself is not a rigorous language (or in other words , more flexible), so when a method is public and does not use $this representing an object in the method, it can be called using::, and PHP will automatically parse and call it as a static method when parsing. Of course, after PHP5, static public function func(){} was introduced. Therefore, if you are on PHP5 and the error reporting mechanism is relatively complete, when you directly call a method without a static declaration, you will be prompted. Notic...
It is recommended not to use this method unless you declare a static method!