PHP和Javascript访问数组和对象时的区别
来源:互联网 发布:比特币 软件 编辑:程序博客网 时间:2024/05/16 09:40
由于PHP和Javascript对数组元素和对象属性的访问很相似又有所区别,有时会将一种特定的写法用在另一种语言上面而导致出错,所以将它们的区别记录下来:
1、在PHP中,访问数组中的元素只能通过 数组名['下标'] 的形式来访问,如
<?php //定义数组 $arr = array('os'=>'linux', 'server'=>'apache', 'database'=>'mysql', 'lang'=>'php'); //访问数组中的元素 echo $arr['server'];//apache //echo $arr.server;//运行出错 //echo $arr->server;//运行出错
2、在PHP中,访问对象的属性只能通过 对象名->属性名 的形式来访问,如
<?php //定义person类 class person{ public $username = "zhangsan"; } //实例化对象 $p = new person(); //访问对象的username属性 echo $p->username;//zhangsan //echo $p['username'];//运行出错Fatal error //echo $p.username;//运行出错Fatal error
3、在Javascript中,数组元素的访问可以通过 数组名['下标'] 或者 数组名.下标(这个下标指的是字符串下标)的方式来访问或者 定义数组元素:
<script type='text/javascript'> var fruit = [3, 6, 9]; //定义数组元素(或者说数组的属性) fruit['price'] = 100; fruit.name = 'apple'; //输出数组元素 alert(fruit.price);//100 alert(fruit['name']);//apple</script>
4、在Javascript中,访问对象的属性也可以通过 对象名['属性名'] 或者 对象名.属性名 的方式来访问或者定义,如:
<script type='text/javascript'> //实例化对象 var person = new Object(); //定义对象属性 person.name = "zhangsan"; person['hobby'] = "basketball"; //输出对象属性 alert(person['name']);//zhangsan alert(person.hobby);//basketball</script>
从上面的例子中可以发现,Javascript中对象属性的访问方式与数组中具有字符串下标的元素的访问方式是一样的,原因是在Javascript中数组也是属于对象object,其中的字符串下标也就是数组对象的属性。
而在使用ThinkPHP时,发现在模板文件中对数组元素和对象属性的访问又有所区别:
假设我们在某一个控制器中分配了如下变量:
$this->assign('obj', 对象);$this->assign('arr', 数组);
那么在相应的模板文件中可以这样使用:
//输出数组元素时{$arr.字符串下标}或者{$arr['字符串下标']}//输出对象属性时{$obj->属性}或者{$obj:属性}
暂时总结到这里,以后发现新的区别再补充~~~
0 0
- PHP和Javascript访问数组和对象时的区别
- javascript 区别数组和对象
- javascript中讨论关联数组和对象的区别
- json与javascript对象和数组的区别
- javascript数组与对象区别和联系
- javascript的对象和数组
- JavaScript中for和for-in的区别;访问对象的属性.和[]的区别
- 数组和对象的区别
- javascript对象和php对象和json区别
- javascript数组和java数组的区别
- JavaScript 对象和数组
- JavaScript对象和数组
- [JavaScript]-----对象和数组
- javascript 对象和数组
- JavaScript对象和数组
- JavaScript数组和对象
- JavaScript:对象和数组
- JavaScript对象和数组
- iOS动画效果和实现
- 电商搜索引擎的架构设计和性能优化
- linux yum源更新
- 一起学Git:欲学Git请先忘记
- Android绘图机制(三) ViewGroup类的延伸
- PHP和Javascript访问数组和对象时的区别
- SQL数据库的基本操作
- [leetcode 246] Strobogrammatic Number
- 一起学Git:Git文件状态
- 初识UML
- java.lang.String +concat(s1: String): String
- 原码, 反码, 补码 详解
- UVA 10082 WERTYU字符串处理
- 《正则表达式必知必会》读书笔记