首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Zephir中使用PDO

在Zephir中使用PDO
EN

Stack Overflow用户
提问于 2015-02-01 05:22:47
回答 1查看 771关注 0票数 2

作为Zephir实验的一部分,我目前正在尝试使用PHP访问MySQL数据库。首先,我发现一个相对无害的

代码语言:javascript
复制
$dbh = new PDO("mysql:host=localhost;dbname=dbn;","user","pwd");

在泽皮尔翻译和使用时

代码语言:javascript
复制
var dbh = new PDO("mysql:host=localhost;dbname=dbn;","user","pwd");

让Zephir吐出一个异常

代码语言:javascript
复制
var dbh = new PDO
------------^

通过一些搜索,我解决了-新是一个保留字在泽皮尔,必须替换为$new。

代码语言:javascript
复制
var dbh = $new PDO("mysql:host=localhost;dbname=dbn;","user","pwd");

迅速产生了

代码语言:javascript
复制
var dbh = $new PDO(
-----------------^

当我意识到我必须明确地告诉Zephir使用PDO名称空间时,我解决了这个问题。

代码语言:javascript
复制
use \PDO;
var dbh = $new \PDO::PDO(

现在,用

代码语言:javascript
复制
var dbh = $new \PDO::PDO("mysql:host=localhost;dbname=dbn","user","pwd");

我得到了

代码语言:javascript
复制
var dbh = $new \PDO::PDO(...,"user","pwd");
---------------------------------------------^

对我来说没什么意义。

据我所知,Zephir还太年轻,不能考虑作为一个工作PHP原型的完整端口。然而,它看起来很好,可以用来移植PHP应用程序中一些CPU强度较大的比特,但是它的文档是缺乏的。例如,在文档中没有任何地方声明使用数组的正确方式是

代码语言:javascript
复制
array myArray;
 let myArray = [1,2,...];

错过了第一个列表,编译器抱怨不能进行变异。

对于我目前的PDO问题,有一个明显的错误,但我不知道它可能是什么。我非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-16 17:02:24

zephir中的var关键字用于变量声明。如果您分配一个“简单”值,如字符串或数组,它将工作。

您的示例的问题是,new PDO(<arguments>)是一个表达式,其中var运算符不是正确的选择。所以你想要的是分配一个值。

变量在默认情况下是不可变的。(见zephir-lang.com)

这就是为什么您需要使用let运算符,这使得它们是不可变的,并且能够解析表达式。

所以你需要使用varlet

就像var dbh; let dbh = new \PDO(<arguments>);

如果你这样做的话,它就有效了:)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28259770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档