主頁 > 知識(shí)庫 > PHP unset函數(shù)原理及使用方法解析

PHP unset函數(shù)原理及使用方法解析

熱門標(biāo)簽:阿里云 Linux服務(wù)器 Mysql連接數(shù)設(shè)置 服務(wù)器配置 科大訊飛語音識(shí)別系統(tǒng) 團(tuán)購(gòu)網(wǎng)站 電子圍欄 銀行業(yè)務(wù)

unset—釋放給定的變量

說明

unset(mixed$var[,mixed$...] ) :void

unset()銷毀指定的變量。

unset()在函數(shù)中的行為會(huì)依賴于想要銷毀的變量的類型而有所不同。

如果在函數(shù)中unset()一個(gè)全局變量,則只是局部變量被銷毀,而在調(diào)用環(huán)境中的變量將保持調(diào)用unset()之前一樣的值。

?php 
function destroy_foo() { 
  global $foo; 
  unset($foo); 
} 
 
$foo = 'bar'; 
destroy_foo(); 
echo $foo; 
?>

以上例程會(huì)輸出:

bar

如果您想在函數(shù)中unset()一個(gè)全局變量,可使用$GLOBALS數(shù)組來實(shí)現(xiàn):

?php 
function foo()  
{ 
  unset($GLOBALS['bar']); 
} 
 
$bar = "something"; 
foo(); 
?>

如果在函數(shù)中unset()一個(gè)通過引用傳遞的變量,則只是局部變量被銷毀,而在調(diào)用環(huán)境中的變量將保持調(diào)用unset()之前一樣的值。

?php 
function foo($bar) { 
  unset($bar); 
  $bar = "blah"; 
} 
 
$bar = 'something'; 
echo "$barn"; 
 
foo($bar); 
echo "$barn"; 
?>

以上例程會(huì)輸出:

something
something

如果在函數(shù)中unset()一個(gè)靜態(tài)變量,那么在函數(shù)內(nèi)部此靜態(tài)變量將被銷毀。但是,當(dāng)再次調(diào)用此函數(shù)時(shí),此靜態(tài)變量將被復(fù)原為上次被銷毀之前的值。

?php 
function foo() 
{ 
  static $bar; 
  $bar++; 
  echo "Before unset: $bar, "; 
  unset($bar); 
  $bar = 23; 
  echo "after unset: $barn"; 
} 
 
foo(); 
foo(); 
foo(); 
?>

以上例程會(huì)輸出:

Before unset: 1, after unset: 23
Before unset: 2, after unset: 23
Before unset: 3, after unset: 23

參數(shù)

var

要銷毀的變量。

...

其他變量……

返回值

沒有返回值。

范例

Example #1unset()示例

?php
// 銷毀單個(gè)變量
unset ($foo);

// 銷毀單個(gè)數(shù)組元素
unset ($bar['quux']);

// 銷毀一個(gè)以上的變量
unset($foo1, $foo2, $foo3);
?>

Example #2 使用(unset)類型強(qiáng)制轉(zhuǎn)換

(unset)類型強(qiáng)制轉(zhuǎn)換常常和函數(shù)unset()引起困惑。 為了完整性,(unset)是作為一個(gè)NULL類型的強(qiáng)制轉(zhuǎn)換。它不會(huì)改變變量的類型。

?php
$name = 'Felipe';

var_dump((unset) $name);
var_dump($name);
?>

以上例程會(huì)輸出:

NULL
string(6) "Felipe"

注釋

  • Note:因?yàn)槭且粋€(gè)語言構(gòu)造器而不是一個(gè)函數(shù),不能被可變函數(shù)調(diào)用。
  • It is possible to unset even object properties visible in current context.
  • 在 PHP 5 之前無法在對(duì)象里銷毀$this。
  • 在unset()一個(gè)無法訪問的對(duì)象屬性時(shí),如果定義了__unset()則對(duì)調(diào)用這個(gè)重載方法。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 詳解PHP的執(zhí)行原理和流程
  • 通過代碼實(shí)例解析PHP session工作原理
  • 深入解析PHP底層機(jī)制及相關(guān)原理
  • PHP數(shù)組實(shí)際占用內(nèi)存大小原理解析
  • PHP超全局變量實(shí)現(xiàn)原理及代碼解析
  • PHP數(shù)組Key強(qiáng)制類型轉(zhuǎn)換實(shí)現(xiàn)原理解析
  • JS PHP字符串截取函數(shù)實(shí)現(xiàn)原理解析
  • PHP 命名空間原理與用法詳解
  • 如何理解PHP程序執(zhí)行的過程原理

標(biāo)簽:衢州 廣元 江蘇 大理 衡水 棗莊 蚌埠 萍鄉(xiāng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP unset函數(shù)原理及使用方法解析》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266