teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

$itrに代入して使うよう変更

2017/11/02 06:42

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -14,7 +14,8 @@
14
14
  ```
15
15
  yieldで値を返すfunctionの戻り値はイテレータになっていて、foreachなどに渡して使います。
16
16
  ```PHP
17
- foreach(getCurrentCategorys(1, "achievements") as $index => $category) {
17
+ $itr = getCurrentCategorys(1, "achievements");
18
+ foreach($itr as $index => $category) {
18
19
  echo $category['term_id'];
19
20
  echo $category['name'];
20
21
  echo $category['slug'];

2

使い方の追記

2017/11/02 06:42

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -2,7 +2,7 @@
2
2
  ```PHP
3
3
  function getCurrentCategorys($id,$tax){
4
4
  $categorys = get_the_terms($id, $tax);
5
- for($categorys as $i => $category) {
5
+ foreach($categorys as $i => $category) {
6
6
  yield [
7
7
  'term_id' => $category->term_id,
8
8
  'name' => $category->name,
@@ -11,4 +11,13 @@
11
11
  ];
12
12
  }
13
13
  }
14
+ ```
15
+ yieldで値を返すfunctionの戻り値はイテレータになっていて、foreachなどに渡して使います。
16
+ ```PHP
17
+ foreach(getCurrentCategorys(1, "achievements") as $index => $category) {
18
+ echo $category['term_id'];
19
+ echo $category['name'];
20
+ echo $category['slug'];
21
+ echo $category['totalCount'];
22
+ }
14
23
  ```

1

totalCountが取れないので修正

2017/11/02 06:41

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -3,7 +3,12 @@
3
3
  function getCurrentCategorys($id,$tax){
4
4
  $categorys = get_the_terms($id, $tax);
5
5
  for($categorys as $i => $category) {
6
+ yield [
7
+ 'term_id' => $category->term_id,
6
- yield (array)$category;
8
+ 'name' => $category->name,
9
+ 'slug' => $category->slug,
10
+ 'totalCount' => $i,
11
+ ];
7
12
  }
8
13
  }
9
14
  ```