中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Behaviors怎么在PHP中使用

發布時間:2020-12-21 16:23:14 來源:億速云 閱讀:139 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關Behaviors怎么在PHP中使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一個綁定了行為的類,表現起來是這樣的:

// Step 1: 定義一個將綁定行為的類
class MyClass extends yii\base\Component
{
  // 空的
}

// Step 2: 定義一個行為類,他將綁定到MyClass上
class MyBehavior extends yii\base\Behavior
{
  // 行為的一個屬性
  public $property1 = 'This is property in MyBehavior.';

  // 行為的一個方法
  public function method1()
  {
    return 'Method in MyBehavior is called.';
  }
}

$myClass = new MyClass();
$myBehavior = new MyBehavior();

// Step 3: 將行為綁定到類上
$myClass->attachBehavior('myBehavior', $myBehavior);

// Step 4: 訪問行為中的屬性和方法,就和訪問類自身的屬性和方法一樣
echo $myClass->property1;
echo $myClass->method1();

上面的代碼你不用全都看懂,雖然你可能已經用腳趾頭猜到了這些代碼的意思, 但這里你只需要記住行為中的屬性和方法可以被所綁定的類像訪問自身的屬性和方法一樣直接訪問就OK了。 代碼中, $myClass 是沒有 property1 method() 成員的。這倆是 $myBehavior 的成員。 但是,通過 attachBehavior() 將行為綁定到對象之后, $myCalss 就好像練成了吸星大法、化功大法,表現的財大氣粗,將別人的屬性和方法都變成了自己的。

另外,從上面的代碼中,你還要掌握使用行為的大致流程:

  • 從 yii\base\Component 派生自己的類,以便使用行為;

  • 從 yii\base\Behavior 派生自己的行為類,里面定義行為涉及到的屬性、方法;

  • 將Component和Behavior綁定起來;

  • 像使用Component自身的屬性和方法一樣,盡情使用行為中定義的屬性和方法。

使用行為,必須像前文描述的一樣先把它附加到 yii\base\Component 類或其子類。一旦行為附加到組件,就可以直接使用它。

行為附加到組件后,可以通過組件訪問一個行為的公共成員變量或 getter 和 setter 方法定義的屬性:

// "prop1" 是定義在行為類的屬性
echo $component->prop1;
$component->prop1 = $value;
類似地也可以調用行為的公共方法:

// foo() 是定義在行為類的公共方法
$component->foo();

如你所見,盡管 $component 未定義 prop1 和 foo() ,它們用起來也像組件自己定義的一樣。

如果兩個行為都定義了一樣的屬性或方法,并且它們都附加到同一個組件,那么首先附加上的行為在屬性或方法被訪問時有優先權。

附加行為到組件時的命名行為,可以使用這個名稱來訪問行為對象,如下所示:

$behavior = $component->getBehavior('myBehavior');

也能獲取附加到這個組件的所有行為:

$behaviors = $component->getBehaviors();

移除行為

要移除行為,可以調用 yii\base\Component::detachBehavior() 方法用行為相關聯的名字實現:

$component->detachBehavior('myBehavior1');

也可以移除全部行為:

$component->detachBehaviors();

上述就是小編為大家分享的Behaviors怎么在PHP中使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北海市| 安乡县| 神农架林区| 平远县| 玛多县| 重庆市| 鹤岗市| 安陆市| 通化市| 多伦县| 嘉义市| 剑河县| 绥宁县| 城步| 淮北市| 边坝县| 盐城市| 双流县| 藁城市| 龙海市| 万年县| 古丈县| 郧西县| 安仁县| 茶陵县| 漳浦县| 郯城县| 通州市| 浦东新区| 建阳市| 上虞市| 健康| 西乌| 登封市| 台中县| 眉山市| 孟津县| 金昌市| 远安县| 杭锦旗| 象州县|