本文目录一览:
- 1、php规定通过$a=&test(); 方式得到的才是函数的引用返回. 这里的引用返回是什么意思,求教
- 2、PHP 函数前面加&符号的意义
- 3、php 代码 $func($dbhost, $dbuser, $dbpass)) 怎么理解
php规定通过$a=&test(); 方式得到的才是函数的引用返回. 这里的引用返回是什么意思,求教
类似指针,你返回的变量和$a的变量指向同一个数据,你这个例子效果不明显
建议你看看手册的例子:
?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.
?
/manual/zh/language.references.return.php
PHP 函数前面加&符号的意义
php函数前面加符号的意思是函数的引用返回,php函数前面加符号有什么作用呢
下面解释下:
通过这种方式$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函数前面加符号是什么意思
那么,php函数前面加符号有什么作用呢?
php 代码 $func($dbhost, $dbuser, $dbpass)) 怎么理解
简单说一下,你的这个代码是错误的
正确的应该这样写
$connid = $func($dbhost, $dbuser, $dbpass);
$connid 是一个变量,
$func($dbhost, $dbuser, $dbpass);是在运行一个方法,
这个方法应该是自定义的。其中$dbhost, $dbuser, $dbpass这三个是参数,你也可以理解为三个变量,方法func()运行时需要这三个参数有对应的值。
所以这个的理解方法就是将$dbhost, $dbuser, $dbpass三个参数传给方法func()方法,方法运行,得到一个值,将值赋值给变量$connid.
从变量的名称两推测这个方法是在连接数据库,根据猜测,我把这个整体复原一下,应该是
func($dbhost, $dbuser, $dbpass)
{
if(mysql_connet($dbhost,$dbuser,$dbpass){
return 1;
}else{
return 0;
}
}
$dbhost=localhost;
$dbuser = 'root';
$dbpass ='';
$connid = $func($dbhost, $dbuser, $dbpass);
以上答案仅供推测,如有错误,纯属正常