php中有指针嘛,在PHP中有指针吗?

PHP中的variables名以$开头,因此$ entryId是variables的名称。 $这是PHP中面向对象编程中的一个特殊variables,它是对当前对象的引用。 – >用于访问PHP中的对象成员(如属性或方法),就像C ++中的语法一样。 所以你的代码意味着这个:

将variables$ entryId的值放入此对象的entryId字段(或属性)中。

PHP中的&运算符是指传递引用。 这里是一个例子:

$b=2; $a=$b; $a=3; print $a; print $b; // output is 32 $b=2; $a=&$b; // note the & operator $a=3; print $a; print $b; // output is 33

在上面的代码中,因为我们使用了&运算符,所以$ b指向的引用存储在$ a中。 所以$ a实际上是对$ b的引用。

在PHP中,参数是默认值(由C启发)传递的。 所以当调用一个函数的时候,当你传递你的值的时候,它们被值复制而不是被引用。 这是最常见的情况。 但是在定义一个函数时,有一种方法可以通过引用行为传递。 例:

function plus_by_reference( &$param ) { // what ever you do, will affect the actual parameter outside the function $param++; } $a=2; plus_by_reference( $a ); echo $a; // output is 3

有许多内置函数的行为是这样的。 像sorting数组的sorting()函数将直接影响数组,并不会返回另一个sorting数组。

有一些有趣的事情要注意。 由于按值传递模式可能会导致更多的内存使用,而PHP是一种解释型语言(所以使用PHP编写的程序不像编译的程序那么快),为了使代码运行得更快并最大限度地减less内存使用量,有一些调整在PHP解释器中。 一个是懒的副本(我不知道名字)。 这意味着这个:

当你将一个variables应用到另一个variables中时,PHP会将第一个variables的引用复制到第二个variables中。 所以你的新variables实际上是到目前为止的第一个variables的引用。 该值尚未被复制。 但是,如果您尝试更改这些variables中的任何一个,则PHP将复制该值,然后更改该variables。 这样您将有机会节省内存和时间,如果您不改变价值。

所以:

$b=3; $a=$b; // $a points to $b, equals to $a=&$b $b=4; // now PHP will copy 3 into $a, and places 4 into $b

毕竟,如果要将$ entryId的值放入对象的“entryId”属性中,上面的代码将执行此操作,并且不会复制entryId的值,直到您更改它们中的任何一个,导致内存减less用法。 如果你真的希望他们都指向相同的价值,那么使用这个:

$this->entryId=&$entryId;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值