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

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

如何在 PHP 中隨機(jī)選擇和刪除數(shù)組中的名稱?

如何在 PHP 中隨機(jī)選擇和刪除數(shù)組中的名稱?

PHP
qq_笑_17 2022-10-28 15:24:21
我是編程新手(所以不要太苛刻),我們的導(dǎo)師從一開始就在推動(dòng)我們使用 TDD 進(jìn)行開發(fā)。我正在做一個(gè)選擇隨機(jī)名稱的小程序。我的一項(xiàng)測試試圖測試相同的名稱不會(huì)被選中兩次,但測試并不總是通過。這是隨機(jī)選擇某人的功能。我選擇 shift method() 是因?yàn)樗鼊h除了數(shù)組的第一個(gè)元素。public function random($coders) {        $coders = ['Paul', 'John', 'Brad'];        shuffle($coders);        $pickedCoder = array_shift($coders);        return $pickedCoder;    }  這是測試:public function testCoderNotKilledTwice()    {         $coders = ['Paul', 'John', 'Brad'];        $killer = new Killer();        $deadCoder1 = $killer->random($coders);        $deadCoder2 = $killer->random($coders);        $this->assertNotEquals($deadCoder1, $deadCoder2);    }我究竟做錯(cuò)了什么?
查看完整描述

1 回答

?
弒天下

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

“我選擇了 shift 方法(),因?yàn)樗鼊h除了數(shù)組的第一個(gè)元素?!?/p>


...當(dāng)然,但是$coders = ['Paul', 'John', 'Brad'];在您的“random()”函數(shù)中,每次都使用原始值重新創(chuàng)建數(shù)組。您使用 shift() 所做的更改不會(huì)在對“random()”的調(diào)用之間保留。即使您刪除了它,每次調(diào)用$killer->random($coders);它時(shí)也會(huì)傳入原始數(shù)組。


您需要$coders在類級(jí)別定義為(私有)屬性,因此它的值在調(diào)用 random() 函數(shù)之間保持不變。無需在 random() 函數(shù)中聲明 $coders,也無需將副本作為參數(shù)傳遞給函數(shù)。


像這樣的東西:


class Killer {

  private $coders = ['Paul', 'John', 'Brad'];


  public function random() {

    shuffle($this->coders);

    $pickedCoder = array_shift($this->coders);

    return $pickedCoder;

  }  

}

接著:


public function testCoderNotKilledTwice()

  $killer = new Killer();

  $deadCoder1 = $killer->random();

  $deadCoder2 = $killer->random();

  $this->assertNotEquals($deadCoder1, $deadCoder2);

}

當(dāng)然請記住,您可能還需要考慮數(shù)組中不再有足夠的項(xiàng)目來返回值的情況。我不知道您希望能夠成功運(yùn)行 random() 函數(shù)多少次。


查看完整回答
反對 回復(fù) 2022-10-28
  • 1 回答
  • 0 關(guān)注
  • 147 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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