博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php 数据类型
阅读量:5168 次
发布时间:2019-06-13

本文共 853 字,大约阅读时间需要 2 分钟。

php跟.net一样分为:值类型和引用类型两种。

值类型传递时候是按值传递,引用类型则是按引用传递。

值类型一般就是直接定义的数据,如:$user,$id这样直接定义的。

引用类型则是通过new 实例化的对象,如:$user = new user();

在函数调用中如果传递的参数为值类型,改变原来数据的值是不会改变的,例如:

<?
php
function
 increment(
$tmp
)
{
    
$tmp
 
=
 
$tmp
 
+
1
;
}
$i
 
=
 
4
;
increment(
$i
)
print
 
$i
;
?>

输出结果:4

如果你想改变值类型的值,可以使用&符号,它的用法跟.net的ref 和out关键字。

<?
php
function
 increment(
&
$tmp
)
{
    
$tmp
 
=
 
$tmp
 
+
1
;
}
$i
 
=
 
4
;
increment(
$i
)
print
 
$i
;
?>

输出结果:5。

 

而按引用类型传递参数时,传递的是对象的指针,在函数中改变的是参数的本身的值,所以不需要使用&符号

 

ContractedBlock.gif
ExpandedBlockStart.gif
Code
<?php
class person
{
    
public $name;
    
public $age;
}
function increment($obj)
{
    
$obj->age = $obj->age +1;
}
$p = new person();
$p->name = "coolkiss";
$p->age = 22;
increment(
$p);
print $p->age;
?>

 

输出结果:23

这里传进去的是一个person的对象$p,这跟上面的值传递不同,上面值传递是传进$i的一个副本

这里如果把$p->age传进去的话也是值传递,同样无法改变age的值。

 

函数前面加的&的用法还不是很懂,希望高手指点一二。。谢谢。。

转载于:https://www.cnblogs.com/coolkiss/archive/2009/06/10/1500830.html

你可能感兴趣的文章