函数的引用返回
先看代码 复制PHP内容到剪贴板
PHP代码:
function &test()
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}
$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6
下面解释下:
通过这种方式$a=test();得到的其实不是函数的引用返回,这跟普通的函数调用没有区别.
至于原因: 这是PHP的规定
PHP规定通过$a=&test(); 方式得到的才是函数的引用返回.
至于什么是引用返回呢(PHP手册上说:引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。)
这句狗屁话 害我半天没看懂.
用上面的例子来解释就是
$a=test()方式调用函数,只是将函数的值赋给$a而已, 而$a做任何改变 都不会影响到函数中的$b.
而通过$a=&test()方式调用函数呢, 他的作用是将return $b中的 $b变量的内存地址与$a变量的内存地址,
指向了同一个地方.
即产生了相当于这样的效果($a=&b;) 所以改变$a的值,也同时改变了$b的值,所以在执行了:
$a=&test();
$a=5;
以后,$b的值变为了5
分享到:
相关推荐
php变量前面加&符号是什么意思就不用多说了,大家都在用,就是两个变量同时指向一个地址而已,那么,php函数前面加&符号的意义又是什么呢?下面先上两个演示代码,然后再做解释。 function &chhua() { static $b=...
php的引用就是在变量或者函数、对象等前面加上&符号,在PHP 中引用的意思是:不同的名字访问同一个变量内容,下面介绍如何使用PHP的引用,需要的朋友可以参考下
php的引用(就是在变量或者函数、对象等前面加上&符号) //最重要就是 删除引用的变量 ,只是引用的变量访问不了,但是内容并没有销毁 在PHP 中引用的意思是:不同的名字访问同一个变量内容. 变量的引用 PHP 的引用...
字符串的截取php内置函数就有很多种; 简单示例如下; $str='123/456/789/abc'; 截取第一个斜杠前面的内容可以这样来: echo substr($str,0,strpos($str, '/')) 或者 $array=explode('/', $str); echo $array...
php的引用就是在变量或者函数、对象等前面加上&符号,在PHP 中引用的意思是:不同的名字访问同一个变量内容,下面介绍如何使用PHP的引用
php的引用(就是在变量或者函数、对象等前面加上&符号)
这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 include 使用方法如 include(...
php的引用(就是在变量或者函数、对象等前面加上&符号),在PHP 中引用的意思是:不同的名字访问同一个变量内容。与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容,在内存中存放的地址。 1.变量的...
先来看个例子:需求为生成4位数,不足前面补0 <?php //生成4位数,不足前面补0 $var=sprintf("d", 2);...规定插到 format 字符串中第一个 % 符号处的参数。 arg2 可选。规定插到 format 字符串中第二个
这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 include 使用方法如 include(...
PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是...
关于php的引用(就是在变量或者函数、对象等前面加上&符号)的作用,我们先看下面这个程序。复制代码 代码如下:<?php $a = 100; //声明变量a $b = &$a; //声明变量b,引用自变量a echo “$a ”; echo “$b...
这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 include 使用方法如 include(...
一、php对外发包问题 客户说自己的vps对外发包严重,我司机房人员查看监控,截图如下: 在这样下去客户的机器肯定会造成ping值不稳定,甚至服务器崩溃。 二、分析问题 经分析发现,这些发包的PHP程序都...符号的就删除
还有一个更重要的符号PHP的范围解析操作符(::) 在没有声明任何实例的情况下访问类中的函数或者基类中的函数和变量很有用处。而 :: 运算符即用于此情况。 复制代码 代码如下: <?php class A { function example...
PHP quotemeta() 函数 定义和用法 quotemeta() 函数在字符串中某些预定义的字符前添加反斜杠。 这些预定义字符是: 句号 (.) 反斜杠 (\) 加号 (+) 星号 (*) 问号 (?) 方括号 ([]) 脱字符号 (^) 美元符号 ($) 圆括号...
对于php的初学者,经常会看到在一个函数名字前面有一个at(@)符号,但是不知道它的作用和用法,去掉后好像对程序没有什么影响,感到很困惑,简单的说@可以忽略错误,有仰制错误的功能为错误控制操作符.
{\"作为有特殊意义的字符的时候,你必须在这些字符面前加'', 还有在php3中你应该避免在模式的最前面使用\, 比如说,正则表达式 "(\$│?[0-9]+" 应该这样调用 ereg("(\\$│?[0-9]+", $str) (不知道php4是不是一样) ...
需要我们用程序处理的数据...PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素。 代码如下:preg_replace (正则表达式, 替换成, 字符串, 最大替换次数