Php reference return and cancel quote _ PHP Tutorial

Source: Internet
Author: User
Php returns and cancels the reference. I. returning a reference is used when you want to use a function to find the variable to which the reference should be bound. Do not use return references to increase performance. the engine is smart enough to optimize the performance.

The return value of the reference is used when you want to use the function to find the variable on which the reference should be bound. Do not use return references to increase performance. the engine is smart enough for optimization. A reference is returned only when there are reasonable technical reasons! To return a reference, use this syntax:

[Php]

Class foo {

Public $ value = 42;

Public function & getValue (){

Return $ this-> value;

}

}

$ Obj = new foo;

$ MyValue = & $ obj-> getValue (); // $ myValue is a reference to $ obj-> value, which is 42.

$ Obj-> value = 2;

Echo $ myValue; // prints the new value of $ obj-> value, I. e. 2.

?>

The above is the explanation provided by PHP Manual and it is easy to understand.

[Php]

Function & test (){

Static $ B = 0; // declare a static variable

$ B = $ B + 1;

Echo $ B ."
";

Return $ B;

}

$ A = test (); // The output value of $ B is: 1

$ A = 5;

$ A = test (); // The output value of $ B is: 2

$ A = & test (); // The output value of $ B is: 3 ** NOTE **

$ A = 5; // The value of $ B is changed to 5.

$ A = test (); // The output value of $ B is: 6 ** NOTE **

?>

$ A = test () although the return method is referenced when a function is defined, if a function is called in this normal situation, it serves the same purpose as a common function, so the result is 1 and 2.

$ A = & test () this call method is to reference and return, which is similar to $ a = & $ B. Then, in the second sentence, $ a = 5, that is, it equals to the variable $ B = 5, and the last sentence gets 6, which is easy to understand!

Unlike parameter transfer, the & symbol must be used here to indicate that a reference is returned instead of a normal copy. it also indicates that $ a is bound as a reference, instead of assigning values normally. Www.2cto.com

Note: If you try to return the reference from the function like this: return ($ this-> value);, this will not work because you are trying to return the result of an expression rather than a referenced variable. Only variables can be referenced from function return-no other method. If the code tries to return the result of a dynamic expression or new operator, an E_NOTICE error will be issued since PHP 4.4.0 and PHP 5.1.0.

II. cancel referencing

When unset is a reference, it only disconnects the binding between the variable name and the variable content. This does not mean that the variable content is destroyed. For example:

[Php]

$ A = 1;

$ B = & $;

Unset ($ );

?>

Not unset $ B, just $.

It may be helpful to understand this analogy with the Unix unlink call.

When you want to use the function to find the variable to which the reference should be bound, the callback reference is returned. Do not use return references to increase performance. the engine is smart enough to optimize itself...

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.