欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么在php函數(shù)中使用靜態(tài)變量-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)怎么在php函數(shù)中使用靜態(tài)變量,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)井陘,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

具體如下:

<?php
function msg() {
  static $a = 0;
  echo $a++, '<br />';
}

msg();
msg();
msg();

上述代碼,分別輸出0,1,2 靜態(tài)變量$a在第一次定義并初始化后就會常駐內(nèi)存,直到腳本執(zhí)行完畢。

當(dāng)?shù)诙握{(diào)用msg()函數(shù)時(shí),這時(shí)的$a值為1,而不會變成0。

那么問題來了,請看下面的一段代碼:

$data = array(
  array('id' => 1, 'title' => '衣服', 'parent' => 0),
  array('id' => 2, 'title' => '鞋子', 'parent' => 0),
  array('id' => 3, 'title' => '襯衫', 'parent' => 1),
  array('id' => 4, 'title' => 'T恤', 'parent' => 1),
  array('id' => 5, 'title' => '運(yùn)動鞋', 'parent' => 2),
  array('id' => 6, 'title' => '休閑鞋', 'parent' => 2),
);

$data2 = array(
  array('id' => 1, 'title' => '食物', 'parent' => 0),
  array('id' => 2, 'title' => '肉食', 'parent' => 1),
  array('id' => 3, 'title' => '素食', 'parent' => 1),
  array('id' => 4, 'title' => '牛肉', 'parent' => 2),
  array('id' => 5, 'title' => '面條', 'parent' => 3),
  array('id' => 6, 'title' => '饅頭', 'parent' => 3),
);

//生成樹型數(shù)據(jù)
function genTree($items, $id = 'id', $pid = 'parent', $son = 'child') {
  $tree = array();
  $tmpMap = array();

  foreach ($items as $item) {
    $tmpMap[$item[$id]] = $item;
  }
  foreach ($items as $item) {
    if (isset($tmpMap[$item[$pid]])) {
      $tmpMap[$item[$pid]][$son][] = &$tmpMap[$item[$id]];
    } else {
      $tree[] = &$tmpMap[$item[$id]];
    }
  }
  unset($tmpMap);
  return $tree;
}

//通過給定數(shù)據(jù),返回option的字符串,用于select下拉框
function getOpts($data, $idArr = array(), $level = 0, $son = 'child') {
  static $opt = '';
  if (!empty($data)) {
    foreach ($data as $k => $v) {
      $opt .= '<option value=' . $v['id'] . (in_array($v['id'], $idArr) ? ' selected="true"' : '') . '>' . str_repeat(' ', $level * 3) . $v['title'] . '</option>';
      if (!empty($v[$son])) {
        getOpts($v[$son], $idArr, $level + 1, $son);
      }
    }
  }
  return $opt;
}

$data = genTree($data);
echo '<select>';
//第一次調(diào)用getOpts時(shí),沒有任何問題。
echo getOpts($data);
echo '</select>';

$data2 = genTree($data2);
echo '<select>';
//當(dāng)?shù)诙握{(diào)用時(shí),問題就出現(xiàn)了,還留有上次的數(shù)據(jù)
echo getOpts($data2);
echo '</select>';

上述問題,對于可能多次調(diào)用的函數(shù),不建議在內(nèi)部使用靜態(tài)變量。

修改getOpts函數(shù)如下,從函數(shù)參數(shù)引入一個(gè)外部變量的引用,來解決此問題。

function getOpts($data, $idArr = array(), &$opt = '', $level = 0, $son = 'child') {
  if (!empty($data)) {
    foreach ($data as $k => $v) {
      $opt .= '<option value=' . $v['id'] . (in_array($v['id'], $idArr) ? ' selected="true"' : '') . '>' . str_repeat(' ', $level * 3) . $v['title'] . '</option>';
      if (!empty($v[$son])) {
        getOpts($v[$son], $idArr, $opt, $level + 1, $son);
      }
    }
  }
}

$data = genTree($data);
getOpts($data, array(), $opt);
echo '<select>';
echo $opt;
echo '</select>';

$data2 = genTree($data2);
getOpts($data2, array(), $opt2);
echo '<select>';
echo $opt2;
echo '</select>';

看完上述內(nèi)容,你們對怎么在php函數(shù)中使用靜態(tài)變量有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

本文標(biāo)題:怎么在php函數(shù)中使用靜態(tài)變量-創(chuàng)新互聯(lián)
分享地址:http://aaarwkj.com/article48/codjhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、App開發(fā)、虛擬主機(jī)動態(tài)網(wǎng)站、面包屑導(dǎo)航定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
人妻有码一区二区三区| 亚洲精品理论片在线观看| 日韩精品一区高清视频| 亚洲精品乱码在线播放| 久久精品亚洲一区二区| 日韩中文字幕在线乱码| 亚洲av产在线精品亚洲第| 韩国午夜福利视频网站| 亚洲男人天堂黄色av| 视频一区二区视频三区| 天堂8在线最新版av| 国产中文字幕婷婷丁香| 国产一区二区不卡在线播放| 日韩一区二区三区免费播放 | 成人黄色18免费网站| 欧美性极品少妇精品网站| 黄片在线免费在线播放| 一本久道久久综合久久鬼色| 看夫妻性生活免费视频| 亚洲欧美午夜不卡视频| 精品一区二区在线不卡| 国产一区二区三区高潮爽| 一本久久精品午夜福利| 国产精品av在线网站 | 黄色av免费无毒网站| 中文字幕人妻熟女在线| 久久夜色一区二区三区| 国产精品白浆大屁股一区二区三| 中文字幕在线视频黄字幕| 日韩精品第一区第二区| 亚洲精品一区二区三区色| 国产精品国产三级国产专播| 免费亚洲网站在线观看视频| 欧美日韩黄片免费在线观看| 中文字幕乱码亚洲影视| 久久精品二区亚洲w码| 国产亚洲精品一区在线| 久久综合色爱综合欧美| 国产av白浆一区二区色爽黄| 搡老女人老91妇女老熟女| 亚洲伦理第一页中文字幕|