回调智能合约 web3.php 中的 PHP 数组

Posted

技术标签:

【中文标题】回调智能合约 web3.php 中的 PHP 数组【英文标题】:PHP array in callback smart contract web3.php 【发布时间】:2018-07-07 03:57:07 【问题描述】:

我尝试用 web3.php 读取智能合约,现在可以正常工作,但我总是只能读取一个返回单个值的函数。当我调用一个返回例如 uint8 数组的函数时,我不能用 ..[index] 调用数组的元素。

Web3.php: (https://github.com/sc0Vu/web3.php)

那是我的回调函数:

$contract->at($contractAddress)->call($functionName, function ($err, $result) use ($contract) 
    if ($err !== null) 
        echo "error";
        throw $err;
    

    if ($result) 
        $supply = $result;
        echo $supply;
    
);

有人知道如何在 php 的回调中接收数组吗?

【问题讨论】:

你试过调试回调吗? 【参考方案1】:

可以在作者github“https://github.com/sc0Vu/web3.php”看到答案。

$newAccount = '';

$web3->personal->newAccount('123456', function ($err, $account) use (&$newAccount) 
    if ($err !== null) 
        echo 'Error: ' . $err->getMessage();
        return;
    
    $newAccount = $account;
    echo 'New account: ' . $account . PHP_EOL;
);

【讨论】:

以上是关于回调智能合约 web3.php 中的 PHP 数组的主要内容,如果未能解决你的问题,请参考以下文章

Web3.js的基本使用(与以太坊智能合约的交互)

智能合约语言 Solidity 教程系列5 - 数组介绍

智能合约语言 Solidity 教程系列5 - 数组介绍

主网在 Remix Solidity 智能合约中部署地址数组作为构造函数参数不起作用

useState 变量在事件回调中为空

智能合约中的“挖矿”是啥意思?