第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

從函數(shù)內(nèi)部訪問 PHP 對(duì)象

從函數(shù)內(nèi)部訪問 PHP 對(duì)象

PHP
冉冉說 2022-07-02 16:57:00
我創(chuàng)建了一個(gè) PHP 類,我想從另一個(gè)文件中的函數(shù)訪問它的方法。下面是我的代碼:include_once PLUGIN_DIR_PATH."/classes/Brands.php";function create_tables(){$brand_obj = new Brands;    $brand_obj->create_brand_table();           }function delete_tables() {$brand_obj = new Brands;    $brand_obj->delete_brand_table();}是否可以只創(chuàng)建一次對(duì)象,然后在每個(gè)函數(shù)中重用它?現(xiàn)在,我在每個(gè)函數(shù)中創(chuàng)建對(duì)象,這不是一個(gè)好習(xí)慣。
查看完整描述

2 回答

?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊

我將假設(shè)您的實(shí)際功能比您發(fā)布的功能更多,否則您實(shí)際上并不需要功能并且可以簡(jiǎn)單地執(zhí)行此操作:


$brand_obj = new Brands;    

$brand_obj->create_brand_table();            

$brand_obj->delete_brand_table();

否則,您可以創(chuàng)建一個(gè)類并Brands通過其構(gòu)造函數(shù)將依賴項(xiàng)注入其屬性之一:


class TablesManager

{

  private $brands;


  public function __construct(Brands $brands)

  {

    $this->brands = $brands;

  }


  public function create_tables(): void

  {

    $this->brands->create_brand_table();

  }


  public function delete_tables(): void

  {

    $this->brands->delete_brand_table();

  }

}

用法:


$brands = new Brands();

$tables_manager = new TablesManager($brands);

$tables_manager->create_tables();

$tables_manager->delete_tables();

注意:調(diào)用課程SomethingManager有時(shí)被認(rèn)為是不好的做法/表明該課程做了太多事情??紤](至少)根據(jù)您的需要給它一個(gè)更準(zhǔn)確的名稱。


演示:https ://3v4l.org/iTmY6


非 OOP 替代方案

function create_tables(Brands $brand_obj): void { 

  $brand_obj->create_brand_table();           

}


function delete_tables(Brands $brand_obj): void {

  $brand_obj->delete_brand_table();

}


$brand_obj = new Brands();    

create_tables($brand_obj);

delete_tables($brand_obj);


查看完整回答
反對(duì) 回復(fù) 2022-07-02
?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以使用 global 關(guān)鍵字在函數(shù)內(nèi)部使用在函數(shù)外部創(chuàng)建的變量:


global $object

代碼示例:


include_once PLUGIN_DIR_PATH."/classes/Brands.php";


$brand_obj = new Brands;


function create_tables(){


    global $brand_obj;

    $brand_obj->create_brand_table();

}


function delete_tables() {


   global $brand_obj;

   $brand_obj->delete_brand_table();

}


查看完整回答
反對(duì) 回復(fù) 2022-07-02
  • 2 回答
  • 0 關(guān)注
  • 154 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)