PHP做用域和文件夾操做

1.做用域php

     1.1變量做用域安全

     1.全局變量:在函數外面函數

      2.局部變量:在函數裏面,默認狀況下,函數內部是不會訪問函數外部的變量編碼

      3.超全局變量:能夠在函數內部和函數外部訪問spa

      在函數內部訪問全局變量code

<?php
$num=10;  //全局變量
function fun() {
    echo $GLOBALS['num'];    //輸出全局的$num
}
fun();

         global關鍵字blog

<?php
$num=10;
function fun() {
    global $num;   //將全局變量的$num的地址引入到函數內部  至關於$num=&GLOBALS['num']
    echo $num;    //10
    $num=100;
}
fun();
echo '<br>';
echo $num;    //100

          小結:遞歸

          1.$GLOBALS保存的是全局變量的全部的值utf-8

         2.global用於建立一個全局變量的引用資源

         3.常量是沒有做用域的概念

         1.2靜態變量(static)

         靜態變量通常指的是靜態局部變量

         靜態變量只初始化一次

<?php
function fun() {
    static $num=10;    //靜態變量只初始化一次,調用完畢吧不銷燬,第二次調用的時候就再也不初始化
    $num++;
    echo $num,'<br>';
}
fun();    //11
fun();    //12

            常量和靜態變量的區別:

          1.常量和靜態變量都是初始化一次

           2.常量不能改變值,靜態變量能夠改變值

           3.常量沒有做用域,靜態變量有做用域

           1.3匿名函數use()

          默認狀況下,函數內部不能訪問函數外部的變量,但在匿名函數中,能夠經過use將外部變量引入匿名函數中

<?php
$num=10;
$fun=function() use($num) {  //將$num引入到匿名函數中,引用多個變量時用逗號分隔開
    echo $num;     
};
$fun();   //10

2.文件夾操做:

           2.1建立文件夾(mkdir(路徑,權限,是否遞歸建立))

<?php
//一、建立目錄
//mkdir('./aa');    //建立aa文件夾
//mkdir('./aa/bb');    //在aa目錄下建立bb(aa目錄必須存在)
mkdir('./aa/bb/cc/dd',0777,true);    //遞歸建立

               2.2刪除文件夾(rmdir())

//remove:移除

rmdir('./aa/bb/cc/dd');    //刪除dd文件夾

                注意:

              一、刪除的文件夾必須是空的

              二、PHP基於安全考慮,沒有提供遞歸刪除。

              2.3重命名文件夾(rename(舊名字,新姓名))

rename('./aa','./aaa');    //將aa改成aaa

                2.4是不是文件夾(is_dir())

echo is_dir('./aaa')?'  是文件夾':'不是文件夾';

                 2.5打開文件夾、讀取文件夾、關閉文件夾

$folder=opendir('./');    //打開目錄
//var_dump($folder);        //resource(3) of type (stream) 
while($f=readdir($folder)){    //讀取文件夾
    if($f=='.' || $f=='..')
        continue;
    echo iconv('gbk','utf-8',$f),'<br>';  //將gbk轉成utf-8
}
closedir($folder);        //關閉文件夾

                 小結:

                一、opendir()返回資源類型
                二、每一個文件夾中都有.和..
                三、iconv()用來作字符編碼轉換

相關文章
相關標籤/搜索