如何在我的代码中使用此PHP类?

时间:2015-12-06 03:17:05

标签: php

我的目录结构:

bencode_test-
            |--> BEncode.php
            |--> bencode_test.php
            |--> ubuntu-15.10-desktop-amd64.iso.torrent

my code:
    <?php
        require 'BEncode.php';
        $bcoder = new BEncode();
        $torrent = $bcoder->bdecode( File::get('ubuntu-15.10-desktop-amd64.iso.torrent'));
        var_dump($torrent);
    ?>

我从this Github account获得了BEncode.php。

当我从命令行运行我的代码bencode_test.php时,我得到的错误是:

PHP Fatal error:  Class 'BEncode' not found in /home/user/bencode_test/bencode_test.php on line 3

有人能告诉我我做错了吗?

2 个答案:

答案 0 :(得分:0)

  
    

调用类应该是这样的

  

你的文件夹看起来像这样

bencode_test # calling function from here
            |--> BEncode.php
            |--> bencode_test.php
            |--> ubuntu-15.10-desktop-amd64.iso.torrent
index.php # code

所以在BEncode.php里面

public function myName($value)
{
    $name = "My Name is :".$value;
    return $name
}

所以在index.php里面

<?php
    require './bencode_test/BEncode.php';
    $bcoder = myName("Ab");
    //$torrent = $bcoder->bdecode( File::get('ubuntu-15.10-desktop-amd64.iso.torrent'));
    //var_dump($torrent);
?>

答案 1 :(得分:0)

file you linked on GitHub位于命名空间中。您必须在文件::

的开头为类添加别名
<?php
use Bhutanio\BEncode\BEncode;
?>

总之:

<?php
use Bhutanio\BEncode\BEncode;
require 'BEncode.php';
$bcoder = new BEncode();
$torrent = $bcoder->bdecode( File::get('ubuntu-15.10-desktop-amd64.iso.torrent'));
var_dump($torrent);

或者,如果您不想添加别名,请使用完全限定的类名:

<?php
require 'BEncode.php';
$bcoder = new Bhutanio\BEncode\BEncode();
$torrent = $bcoder->bdecode( File::get('ubuntu-15.10-desktop-amd64.iso.torrent'));
var_dump($torrent);
?>