php中有指针吗?
此代码是什么意思?这是你在php中声明指针的方式吗?
$this->entryId = $entryId;
PHP 中的变量名称以 $ 开头,因此$entryId是变量的名称。$this是PHP中面向对象编程中的一个特殊变量,它是对当前对象的引用。-> 用于访问 PHP 中的对象成员(如属性或方法),如 C++ 中的语法。所以你的代码的意思是这样的:
将变量 $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
在上面的代码中,由于我们使用了 &operator,因此对$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
有许多内置函数的行为与此类似。与排序的 sort() 函数一样,数组将直接影响数组,并且不会返回另一个排序的数组。
不过,有一些有趣的事情需要注意。由于按值传递模式可能会导致更多的内存使用,并且 PHP 是一种解释型语言(因此用 PHP 编写的程序不如编译的程序快),为了使代码运行得更快并最大限度地减少内存使用量,PHP 解释器中有一些调整。一个是懒惰复制(我不确定名字)。这意味着:
当您将一个变量处理到另一个变量中时,PHP 会将对第一个变量的引用复制到第二个变量中。因此,到目前为止,您的新变量实际上是对第一个变量的引用。尚未复制该值。但是,如果您尝试更改这些变量中的任何一个,PHP 将创建该值的副本,然后更改该变量。这样,如果您不更改值,您将有机会节省内存和时间。
所以:
$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”属性中,则上述代码将执行此操作,并且不会复制entageId的值,直到您更改其中任何一个,导致内存使用量减少。如果您实际上希望它们都指向相同的值,请使用以下命令:
$this->entryId=&$entryId;
不,正如其他人所说,“PHP中没有指针”,我补充说,PHP中没有RAM_related。
而且所有的答案都很清楚。但是有一些点被遗漏了,我无法抗拒!
首先,我不得不说PHP是一种非常强大的语言,因为我知道有一个名为“eval”的构造,因此您可以在运行它时创建PHP代码!(真的很酷!
尽管存在PHP_Injection的危险,但其破坏性远大于SQL_Injection。小心!
例:
法典:
$a='echo "Hello World.";';
eval ($a);
输出
世界您好。
因此,您不必使用指针来充当另一个变量,而是可以从头开始创建一个变量!
$GLOBAL变量非常有用,您可以使用其键访问所有变量。
例:
法典:
$three="Hello";$variable=" Amazing ";$names="World";
$arr = Array("three","variable","names");
foreach($arr as $VariableName)
echo $GLOBALS[$VariableName];
输出
你好,神奇的世界
注意:其他超群可以在较小的尺度上做同样的事情。
您可以在变量之前添加任意数量的“$”,如果您知道自己在做什么。
例:
法典:
$a="b";
$b="c";
$c="d";
$d="e";
$e="f";
echo $a."-";
echo $$a."-"; //Same as $b
echo $$$a."-"; //Same as $$b or $c
echo $$$$a."-"; //Same as $$$b or $$c or $d
echo $$$$$a; //Same as $$$$b or $$$c or $$d or $e
输出
b-c-d-e-f
引用非常接近指针,但您可能需要检查此链接以获取更多说明。
示例 1:
法典:
$a="Hello";
$b=&$a;
$b="yello";
echo $a;
输出
耶洛
示例 2:
法典:
function junk(&$tion)
{$GLOBALS['a'] = &$tion;}
$a="-Hello World<br>";
$b="-To You As Well";
echo $a;
junk($b);
echo $a;
输出
-你好世界
-也给你
希望它有帮助。