PHP和Javascript访问数组和对象时的区别

由于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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值