關於unset的用法

2021-10-02 09:41:37 字數 1429 閱讀 5578

unset ( mixed $var

[, mixed $...

]): void

1、unset() 銷毀指定的變數。

2、unset() 在函式中的行為會依賴於想要銷毀的變數的型別而有所不同。

3、如果在函式中 unset() 乙個全域性變數,則只是區域性變數被銷毀,而在呼叫環境中的變數將保持呼叫 unset() 之前一樣的值。

可見,unset的用法並不像我們理解的那麼簡單。

一、常規操作

demo1:

$t=12

;unset($t

);var_dump

(isset($t

));// false

二、銷毀全域性變數

demo2:

// 直接銷毀

$_post

['name']=

'rao'

;unset

($_post);

// 變為區域性變數$t=

12;functiont(

)t()

;echo$t.

php_eol

;// 12

三、銷毀引用

如果在函式中 unset() 乙個通過引用傳遞的變數,則只是區域性變數被銷毀,而在呼叫環境中的變數將保持呼叫 unset() 之前一樣的值。

demo3:

function

foo(

&$bar

)$bar

='something'

;echo

"$bar

\n";

// something

foo(

$bar);

echo

"$bar

\n";

// something

demo4:$a=

12;$b=

&$a;echo$a,

$b,php_eol;$c

=$b;$b

=13;echo$a,

$b,$c,

php_eol

;

四、銷毀靜態變數

如果在函式中 unset() 乙個靜態變數,那麼在函式內部此靜態變數將被銷毀。但是,當再次呼叫此函式時,此靜態變數將被復原為上次被銷毀之前的值。

demo5:

function

foo(

)foo()

;// before unset: 1, after unset: 23

foo();

// before unset: 2, after unset: 23

foo();

// before unset: 3, after unset: 23

PHP isset 和unset 函式的用法

php 3,php 4,php 5 isset 檢測變數是否設定 boolisset mixed var mixed var 如果 var 存在則返回true,否則返回false。如果已經使用unset 釋放了乙個變數之後,它將不再是isset 若使用isset 測試乙個被設定成null的變數,將返...

關於的用法

1.訪問action值棧中的普通屬性 2.訪問action值棧中的物件屬性 要有get set方法 3.訪問值棧中物件屬性的方法 4.訪問值棧中action的普通方法 5.訪問靜態方法 6.訪問靜態屬性 配置屬性檔案,允許ognl訪問靜態方法struts.ognl.allow.true 7.訪問ma...

PHP的unset 函式的實際效果

php變數對記憶體的開銷與釋放,unset 是否真的釋放記憶體。php的unset 函式的實際效果 測試 如下 複製php內容到剪貼簿 php for i 1 i 100 i 從結果看出 8 x 32 256 在256位元組長的時候才真正有必要釋放記憶體,有些人說,不如直接 str null來的速度...