问答详情
源自:2-7 [PDO] 设置数据库连接属性

请问constant("PDO::ATTR_$attr")这里不用constant,类似(PDO::ATTR_$attr)他就不会返回常亮的值了吗?

请问constant("PDO::ATTR_$attr")这里不用constant,类似(PDO::ATTR_$attr)他就不会返回常亮的值了吗?

提问者:superhuman进化中 2016-08-21 14:22

个回答

  • Secg
    2016-08-24 10:38:34
    已采纳

    如果只是 PDO::ATTR_$attr 会被认为是组合字符串,所以解析会失败,可能你会对以下问题产生错误

    getAttribute(constant("PDO::ATTR_$attr")); //正确读出常量
    getAttribute(PDO::ATTR_$attr); //产生错误提示,被认为是字符串
    getAttribute(PDO::ATTR_AUTOCOMMIT); //正确读出来

    因为在PDO::ATTR_$attr 中$attr是字符串,而前面完全是一段字符而已,所以自然就成了字符串,必须使用constant读出字符串所对应的常量。

    而 PDO::ATTR_AUTOCOMMIT 早就是常量了,所以他自身可以直接地被读出来

    mixed PDO::getAttribute ( int $attribute )

    关键还是要看好函数的语法···