簡體   English   中英

如何在 .php 中的類中實例化一個類

[英]How do I Instantiate a class within a class in .php

我是 OOP 的新手,我不明白為什么這不起作用。 在一個類中實例化一個類是否可以。 我已經在方法中使用包含的文件嘗試過這個,但它沒有做任何改變。

include('Activate.php');

class First {
    function __construct() {
    $this->activate();
    }       
    private function activate() {
    $go = new Activate('Approved');
    }
}

$run = new First();

您是說要訪問$go嗎? 因為,如果是這種情況,您需要更改它的范圍。

如您所見,此方法中的$go僅在activate()可用:

private function activate() {
    $go = new Activate('Approved');
}

要使其可從類中的其他位置訪問,您需要在activate()之外聲明它:

private $go = null;

你使用$this調用$go

private function activate() {
    $this->go = new Activate('Approved');
}

之后,如果要從外部類訪問 go,則需要創建包裝器:

public function getGo(){
   return $this->go;
}

希望這有幫助。 此外,您可以閱讀有關 PHP 中 OOP文檔

好的,我想出了我的問題。 我的代碼有兩個錯誤。 一個作為我的方法被設置為私有,其次我在發送給班級的$parms中有一個錯誤。

include('Activate.php');

class First {
    function __construct() {
    $this->activate();
    }       
    private function activate() {
    $go = new Activate('Approved');
    }
}

$run = new First();

您可以借助在同一類中創建另一個公共函數並在公共方法或函數中調用私有函數來訪問私有方法。 現在您可以在$run實例的幫助下調用您的私有函數。

例如:

類汽車{

function getting(){
    echo ("Hello World");   
}

private function getting2(){
    echo ("Hello World Againg");
}

public function getting3(){
    $this->getting2();
}

}

$class_object=新車;

打印($class_object->getting3());


您的輸出屏幕如下圖所示。

在此處輸入圖片說明


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM