PHP vs C中的箭头运算符
作者:互联网
我是一名PHP程序员,试图学习更多PHP背后的理论,但是在连接PHP和C之间的点时遇到麻烦.例如,箭头运算符在PHP和C中是否完全相同?
这是我研究时想到的:
>在C中,->只是别名,a-> b与(* a).b相同.箭头运算符只是取消引用指针,因此您可以与地址变量进行交互.
>在PHP中,->是参考.它“引用实例化对象的属性”(未知).但这和C一样吗?
注意:今天,我了解了C中的指针.
解决方法:
在PHP中,->用于访问类的成员. C没有课程.
最接近的是一个结构.
在PHP中
class Animal {
public $color;
public $age;
}
$fido = new Animal;
$fido->color = 'white';
$fido->age = 3;
$kitty = new Animal;
$kitty->color = 'brown';
$kitty->age = 5;
// output
echo 'Fido is ' . $fido->color . "age=". $fido->age . "\n";
echo 'Kitty is ' . $kitty->color . "age=". $kitty->age . "\n";
输出为:
Fido is white age=3
Kitty is brown age=5
您可以使用结构在C语言中执行类似的操作.它涉及更多.
打扰一下,我很生锈
struct Animal {
int age;
char color[50];
};
int size = sizeof(struct Animal);
struct Animal * fido = malloc(size);
struct Animal * kitty = malloc(size);
fido->age = 3;
strcpy(fido->color, "white");
kitty->age = 5;
strcpy(kitty->color, "brown");
printf("Fido is %s age=%d\n", fido->color, fido->age);
printf("Kitty is %s age=%d\n", kitty->color, fido->age);
除非您真的想深入了解底层细节,否则请不要过多考虑PHP参考.这意味着在执行函数调用等操作时它们不会传递实际值.
标签:reference,c-3,php,pointers 来源: https://codeday.me/bug/20191210/2104632.html