1

私はJavaの世界から来て、Phpで同じ「簡単な」ことを試してみました.

不変のダミー データ オブジェクトがあります。

class BugTimeData {

    private $bugid = "";
    private $startDate = "";
    private $resolvedDate = "";
    private $status = "";
    private $weekends = ""; 

    function __construct($bugid, $startDate, $resolvedDate, $status) {
        $this->bugid = $bugid;
        $this->startDate = $startDate;
        $this->resolvedDate = $resolvedDate;
        $this->status = $status;
    }

    function getBugId() {
        return $this->bugid;
    }

    function getStartDate() {
        return $this->startDate;
    }

    function getResolvedDate() {
        return $this->resolvedDate;     
    }

    function getStatus() {
        return $this->status;
    }

    function getWeekendsBetween() {
        return $this->weekends;
    }
}

このクラスのオブジェクトを配列に追加します。

$data= new BugTimeData($a, $b, $c, $d);
array_push($content, $data);

この配列を反復処理し、オブジェクトを読み取り、それらのメソッドにアクセスしたい:

foreach($time_prio_bug_content as $key => $value) {
    var_dump($value->getStatus());
}

これはうまくいきます!しかし、私の IDE (Eclipse) は、 $value が type からのものであることを本当に知りませんBugTimeData。したがって、パブリック メソッドに簡単にアクセスすることはできません。

質問: $value を type からオブジェクトにキャストする方法はBugTimeData?

Java では、これは非常に簡単で (配列を作成するときにオブジェクトの型を定義できるため、キャストは必要ないため)、簡単です。では、なぜこれが PHP で不可能なのだろうか?

4

3 に答える 3