0

我对 PHP 很陌生,我来自 Java。我在Java中有一个这样的类:

class A {
}

class B{
}

在同一个包中。在类内部A,我定义了一个类型的数据类型,B例如:

   B bType;

我希望在 php 中具有相同的行为。有可能这样做吗?

有没有办法在 php 中“打包”我的类?

提前致谢。

4

3 回答 3

0

PHP 不支持静态类型,但您可以使用类型提示在方法中定义数据类型。例如...

<?php

class A
{
    public function test(B $b) // Must be a method within B or a new exception will be thrown.
    {
        echo 1 + $b->test(); // adds one plus the return value of $b->test() from the B class.
    }
}

class B
{
    public function test() 
    {
        return 1;
    }
}

    class C
    {
         public function test()
         {
              $b = new B; // initializes the B class.
              return $b->test(); // calls the test method within the B class.
         }
    }

$a = new A;
$a->test(new B); // returns 2

您还可以gettype($a)用来检测某种数据类型。

于 2013-01-15T10:15:27.093 回答
0

您可以使用命名空间(即包装)。如果你真的想打包,那么你应该看看http://php.net/manual/en/book.phar.php(但我想直到现在,没有人真正这样做)。

您可以强制函数中的类型,但不能强制变量。

function (Array $bla, YourClass $test) {
   /** ... **/
}

希望能帮助到你

于 2013-01-15T09:48:13.317 回答
0

类内部A定义:

$BClass = new B(arguments for contructor);
$BClass = new B; //without contructor
于 2013-01-15T09:48:30.927 回答