What is a quote
Reference in PHP means that the same variable content is accessed with different variable names, similar to the file name and the file itself in Unix (the variable name is the directory entry, and the variable content is the file itself, that is, the same file is accessed with different directory entries), Can be thought of as a hard link in the Unix file system.
There are two types of links in the file system, one is called a hard link and the other is called a symbolic link. By default, the ln command generates hard links. A hard connection refers to a connection through an index node. In the Linux file system, files stored in disk partitions are assigned a number regardless of their type, called an index node number (InodeIndex). In Linux, multiple file names pointing to the same index node exist. Generally this connection is a hard connection. The function of hard link is to allow a file to have multiple valid path names, so that users can establish hard links to important files to prevent "accidental deletion". The reason for this is as mentioned above, because there is more than one connection to the index node of the directory. Deleting only one connection does not affect the index node itself and other connections. Only when the last connection is deleted, the data blocks of the file and the directory connections will be released. In other words, the file will actually be deleted. Corresponding to the hard connection, there is another connection in the Lnux system, called the symbolic link (Symbilc Link), also called a soft link. Soft link files are somewhat similar to Windows shortcuts. It is actually a type of special file. In a symbolic link, the file is actually a text file that contains the location information of another file.
Quotes are mainly used to do three things:
Points to the same content
Reference allows two variables to point to the same content, such as$a = & $b
, which means$a
and$b
point to the same variable.
If an undefined variable is assigned by reference, passed by reference parameter, or returned by reference, the variable will be automatically created. For example, the following program automatically creates the variable$a
.
<code>function foo(&$var) {} foo($a);</code>
Since PHP 5, thenew
operator automatically returns a reference.
Pass by reference
Passing variables by reference can be achieved through the following code. The variable$var
in thefoo
function points to the same content that$a
points to. .
<code><?php function foo(&$var) { $var++; } $a = 1; foo($a); echo $a;</code>
Only there are reference symbols&
in the function definition, but there are no reference symbols&
when the function is called.
Return by reference
To return a reference, use the following syntax.
<code><?php class foo { public $value = 42; public function & getValue() { return $this->value; } } $obj = new foo; $myValue = & $obj->getValue(); $obj->value = 2; echo $myValue;</code>
Note that return by reference is different from parameter passing. Function definitions and function calls (indicating that a reference is returned instead of a usual copy) are both represented by&
symbols.
Unquote
Whenunset()
a reference, the binding between the variable name and the variable content is only broken, and the variable content is not destroyed.
Citation positioning
Many PHP syntax structures are implemented through the reference mechanism, such asglobal
references and$this
pointers.
When declaring a variable withglobal $var
, it actually establishes a reference to the global variable, which has the same effect as$var = & $GLOBALS['var']
. In object methods,$this
is always a reference to the object that calls it.
(Full text ends)
The above introduces the reference-PHP manual notes, including the content. I hope it will be helpful to friends who are interested in PHP tutorials.