V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iugo
V2EX  ›  PHP

[入门问题] & 符号有用法限制?

  •  
  •   iugo · 2014-09-10 16:04:31 +08:00 · 2732 次点击
    这是一个创建于 3734 天前的主题,其中的信息可能已经有所发展或是发生改变。
    $c = &$a."b";
    $a = "a";
    echo $c;

    这样输出为 a

    $a = "a";
    $c = $a."b";
    echo $c;

    这样输出就是 ab 了

    新版的 PHP 中是否还在用 & 这个符号?

    造成问题的原因是 & 用法限制还是代码有误?

    请详解. 谢谢.
    10 条回复    2014-09-10 20:14:35 +08:00
    konakona
        1
    konakona  
       2014-09-10 16:19:06 +08:00
    你造&在php的作用是引用地址吗?
    iugo
        2
    iugo  
    OP
       2014-09-10 16:22:56 +08:00
    @konakona 不知道... 我以为在函数名前加 & 的作用是取该函数最后一个值.
    typcn
        3
    typcn  
       2014-09-10 16:23:27 +08:00
    @konakona C艹指针即视感
    a591826944
        4
    a591826944  
       2014-09-10 16:23:59 +08:00
    @iugo LZ 你这理解屌爆了
    iugo
        5
    iugo  
    OP
       2014-09-10 16:24:30 +08:00
    @konakona 之前好像记得美女是做前端的. 原来是通吃...
    iugo
        6
    iugo  
    OP
       2014-09-10 16:27:38 +08:00
    @a591826944 呃, 我刚利用上班时的空闲时间学两天... 标题有些「入门问题」. imooc.com 中的某教程是说的大概意思是这样的, 可能那教程为了便于新手理解, 所以才没深入吧.
    jsjscool
        7
    jsjscool  
       2014-09-10 17:15:22 +08:00   ❤️ 2
    新版的 PHP 中是还在用 & 这个符号,但是通过函数调用引用传参已经去除了,就是不能通过function test(&$a)这种方式传参。

    造成这种问题的原因是代码不规范,我大概说下问题:
    1.$a 变量没申明就使用,是很不好的编程习惯,C,C++通用。
    2.&取地址符的优先级高于 .(字符串相加)符号。
    3.虽然PHP是弱类型语言,但也不能用地址指针和字符串拼接。故输出的是$a
    konakona
        8
    konakona  
       2014-09-10 17:38:52 +08:00
    @iugo 你记错了,我专门玩的是PHP。只不过WEB的东西都懂点而已。
    konakona
        9
    konakona  
       2014-09-10 17:39:44 +08:00
    @iugo =.= 已和慕课签约了PHP讲师协议, 不过由于录的不太好~被抛弃了~TAT
    eslizn
        10
    eslizn  
       2014-09-10 20:14:35 +08:00
    @jsjscool 还是可以用的,只是对象默认传递的就是指针,如果是普通变量需要传引用还是需要&
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2621 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 10:42 · PVG 18:42 · LAX 02:42 · JFK 05:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.