ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP vs C中的箭头运算符

2019-12-10 22:29:56  阅读:370  来源: 互联网

标签:reference c-3 php pointers


我是一名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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有