php函数前面的&符号
函数的引用返回
先看代码 复制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
相关文档:
一、 变量命名
a) 所有字母都使用小写
b) 首字母根据变量值类型指定
i. 整数i
ii. 浮点数f
iii. 字符串s
iv. 布尔值b
v. 数组a
vi. 对象o
vii. 资源r
viii. 混合类型m
c) 使用’_’作为每一个词的分界
例如:
$i_age_max = 10;
$f_price = 22.5;
$s_name =‘harry’;
$b_flag = true;
......
提供一个php多线程上下文中安全写文件的实现方法。这个实现没有使用php 的file lock机制,使用的是临时文件机制。多线程中的各个线程都是对各自(每个线程独占一个)的临时文件写,然后再同步到原文件中。
<?php
/**
* @usage: used to offer safe file write operation in multiple threads context, arbitory file ......
<?php
$host = "www.abc.com"; //你要访问的域名
$target = "/test.asp"; //你要访问的页面地址
$referer = "http://www.abcdefg.com/abc.html"; //伪造来路页面
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp){
echo "$errstr($errno)<br />\n";
} ......
PHPer
为什么被认为是草根?
—— 一个值得PHPer思考的问题
开篇注释:以下文字并没有非常多的技术词汇,所以只要对
PHP
感兴趣的人都可以看看。
PHPe ......