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

怎么在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一区二区三区| 一区二区三区在线观看淫| 国产成人亚洲一区二区三区| 日本黄色三级三级三级| 亚洲91无专砖码高清观看| 五月婷婷色丁香综合激情| 日本少妇激情后入嗯啊| 国产一区二区精品小视频| 草草影院最新地址在线观看| 亚洲欧美日韩综合久久| 日韩av裸体在线播放| 欧美亚洲尤物久久精品| 日韩av一区二区在线| 男人天堂在线视频网站| 久久精品国产av极品| 久久亚洲精品中文字幕| 91麻豆亚洲国产成人久久| 国产男女视频免费观看| 区二区三区毛片乱码免费| 欧美十日本亚洲激情视频| 成人深夜福利视频在线| 五月开心婷婷开心五月活动推荐| 中文免费在线观看av| 日韩精品国产自拍在线| 丰满人妻一区二三区av| 欧美日韩中文字幕精品视频| 丰满人妻被黑人猛烈进入| 日韩精品一区二区在线天天狠天| 欧美日韩精品综合国产| 中日韩一二三四区在线看| 激情亚洲欧美日韩精品| 有码不卡中文字幕在线视频| 欧美日韩一级一区二区| 不卡av免费在线网址| 99久久热这里只有精品| 丰满人妻熟妇乱精品视频| 亚洲激情自拍偷拍视频| 天天色天天色天天色综合网| 91亚洲精品综合久久| 亚洲精品国产第一区第二区| 中文字幕不卡一区在线|