编程语言
首页 > 编程语言> > PHP vs C中的箭头运算符

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