PHPcpp 变量和类型

本文详细介绍了使用PHPCPP开发PHP扩展的方法,重点讲解了PHPCPP中变量类型及数组的定义与使用,包括隐式类型转换、初始化列表创建数组等特性。

 

 

    用PHPCPP来开发PHP扩展是非常容易的,最主要的就是变量类型和PHP中的变量类型一毛一样,最重要的是写法也是一毛一样。

    在PHP中,变量默认是没有类型的,我们赋给他整数,他就是整形,赋给他字符串他就是string,也就是说PHP中的变量类型是随着值来定义的。PHPCPP在这里也是做了很大的优化,实现了类型随值的类型来定义。

    

Php::Value value1 = 1234;
Php::Value value2 = "this is a string";
Php::Value value3 = std::string("another string");
Php::Value value4 = nullptr;
Php::Value value5 = 123.45;
Php::Value value6 = true;

    其中Php::Value是PHPCPP定义一种类型,这个类型会进行隐式转换,就如同我们在PHP中用到的变量。

void myFunction(const Php::Value &value)
{
    int value1 = value;//这里的value就被隐式转换了,不然string怎么可能赋给int,C++中是绝对不允许的
    std::string value2 = value;//这里又给转换成了string
    double value3 = value;
    bool value4 = value;
}

    PHPCPP中Php::Value是和PHP的变量类型对应的,所以你会定义PHP变量,很容易就能接受PHPCPP的变量定义方式。

PHPCPP中数组的定义,这里就不用过多介绍了,因为你是一个PHPER,所以你了解下面的含义吧。

Php::Value array;
array[0] = "apple";
array[1] = "banana";
array[2] = "tomato";

// an initializer list can be used to create a filled array
Php::Value filled({ "a", "b", "c", "d"});

// you can cast an array to a vector, template parameter can be
// any type that a Value object is compatible with (string, int, etc)
std::vector<std::string> fruit = array;

// create an associative array
Php::Value assoc;
assoc["apple"] = "green";
assoc["banana"] = "yellow";
assoc["tomato"] = "green";

// the variables in an array do not all have to be of the same type
Php::Value assoc2;
assoc2["x"] = "info@example.com";
assoc2["y"] = nullptr;
assoc2["z"] = 123;

// nested arrays are possible too
Php::Value assoc2;
assoc2["x"] = "info@example.com";
assoc2["y"] = nullptr;
assoc2["z"][0] = "a";
assoc2["z"][1] = "b";
assoc2["z"][2] = "c";

    只需要记住,在PHPCPP中定义变量给PHP中交互就定义为PHP::VALUE就可以了。

转载于:https://my.oschina.net/xavier007/blog/821249

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值