php のいくつかの一般的な関数を共有する

小云云
リリース: 2023-03-21 09:18:01
オリジナル
10352 人が閲覧しました

PHP を長い間勉強していると、基本的な知識、特に配列や文字列関数の応用が常に信頼できないように感じます。しかし、これらの基本的な知識は非常に重要なので、この記事が PHP の一般的な機能をいくつか紹介します。 。

1つ。 PHP の基本構文

変数、定数

大文字と小文字は厳密に区別されますが、組み込みの構造体やキーワードは関係ありません (エコー)

名前付け: 数字、スペースなどで始めることはできませんが、中国語の文字を含めることはできます。例: $variable= "aa";

変数変数: a='aa';

a="bb";

aa="bb";

参照割り当て: a="aa";

b=&a; その後、changechange

a の値、bに変更します。 と同じではありません: を保存します ノット 構造 ポイント を開きます makeunset( a)、$b はまだ存在します (C 言語の差別化)

変数の型: int str array bool object float resource null

グローバル変数: グローバル変数自体は静的格納メソッドであり、すべてのグローバル変数は静的変数です

_SESSION、_COOKIE、

_POST、_GET、

_F ILES,$_EVN 静的変数: static [参照詳細については、下の図を参照してください。

静的メソッド: 静的メソッドは、クラスをインスタンス化せずに直接使用できます。 Math::Max(

a

,

b); (静的メソッド Max は Math クラスをインスタンス化せずに直接呼び出されます) 定数: “Define (" name ", $ value, [true]); // 3 番目のパラメータが true の場合、小文字は区別されません。使用する 使用する 使用する 使用する 使用する 使用する 使用する 使用する 使用する 使用するthrough using use using ' through through using through using through through ' s through through ‐ through ‐ to ‐ ‐‐‐‐ , to 出力に含まれるため、出力はソースコードの情報、非ソースコードの情報でもあります。現在インクルードされているファイルであり、$_SERVER とは区別されます】 現在の関数名

__METHOD__ 現在のメソッド名

__LINE__データセグメント

静的変数: (関係なく)グローバル/ローカルの) 静的ファイルに保存されるデータセグメント

型変換

 1.setType($a);//获取变量的类型
    2.b=(int)
a;//把$a转换为整形

       b=intval(
a);

    3.is_int(b);//判断
b是否为整形,返回bool值


    类型转换:(int),(bool),(float),(),(string),(),(array),(),(object); 
                      intval(),floatval();strval()
    判断类型:
                    is_bool/int/float/string/array/object/resource/null
                    is_numberic();’//判断是否为任何类型的数字或者数组字符串
                    is_callable();//判断是否为有效函数名称
运算符
     算数运算符:+ - * / % ++ –
     连接运算符: .
     赋值运算符: =, +=,-=,*=,/=,%=,.=
     比较运算符:>,<,==,===,!= <>,!==
     逻辑运算符: and,&&  ;   or,||   ;   not,!  ;  xor(逻辑异或,两边不同返回TRUE,相同返回FALSE)
     位运算符    : & ;|;^(异或,不同返回1);~(非运算符,1.0取反);<<左移,右边空出的补0;>>右移左边空出的补0
     其他运算符: 
                        ?:  三目运算符    举例:a=
bool?b:
c; //若bool成立,
a=b;否则
a=$c
                        @ 忽略错误
                        =>数组下标用
                        ->调用对象值用
                        ·· 反引号为执行运算符?? 
                        instanceof 类型运算符  class ClassOne{} a=new ClassOne(); var_dump(  
a instanceof ClassOne  );//返回true
ログイン後にコピー

フロー制御

        1.if(){}else{}
        2.while(){};
        3.do{}while();$
        4.for(a=1;
a<10;$a++){}

        5.switch($a){
            case 1:echo 1; break;
            case 2:echo 2;break;
            default: echo “this is defaut value”;
            }
    continue,break;exit   区别:
        continue跳过当前循环,循环还在继续
        break 跳出当前循环,循环终止
        exit;   终止当前脚本,这行代码后边的代码不执行了就
ログイン後にコピー

関数

命名: 変数の命名規則に従ってください。関数を一度に多重定義することはできません。

機能: この関数は構造化プログラミングを実装し、関数の保守性を向上させます。コード

グローバル変数: スクリプト全体で使用できます

ローカル変数: 関数本体内でのみ使用され、関数は実行後に自動的に解放されます

|—> 静的ストレージ型と動的ストレージ型に分けられますtype; static $a は関数の実行後に解放されない静的変数です<br/>

関数のグローバル変数内のローカル変数のプログラミング: 1.global ; 2.$GLOBAL[”] はグローバル配列を使用します

関数の種類

1

.引用参数的函数:function(&a)//函数内对形参
a的操作,会对实参也造成影响 eg:sort()

    2.默认参数的函数:function(a=0)//没有参数传入的话,默认
a=0

    3.可变参数个数的函数:function(a,
b$c,…){}

        //原理:通过fun_get_args()函数,接受所有参数并返回一个数组来使用,所以可以有多个参数  EG: echo(),array_merge()
    4.回调函数:fun="one"; function one(){}  当调用
fun()的时候,就是再调用one()函数,call_user_func_array()

    5.递归函数:function test(){ test()}//在函数中再次调用函数,但注意死循环的问题,要有执行结束跳出
ログイン後にコピー

2. PHP 共通関数

共通関数:

<br/> echo() [言語構造]

print( )//[言語構造] [戻り値あり]、送信が失敗し出力がない場合は false を返します

var_dump()

var_export() [戻り値を使用して、正当な PHP コードを変換します]

printf( )//C 言語の形式 printf("my名前は %s、年齢 %d",

n

a

m

e

,

age);、印刷してください

sprintf()//printf と似ていますが、印刷はしませんが、フォーマットされたテキストを返します。その他は printf

配列関数:

1. ソートクラス: [1. 戻り値なし、値による参照を渡すことで、元の配列を直接変更します]

<br/> V を押す: sort、rsort、asort、arsort、

K を押す: ksort、krsort

文字を押す:

natsort();//区分大小写的排序
              natcasesort();//不区分大小写的排序,
              当遇到字符完全一样,按照数字排 eg: FILE1,FILE2, 这两个字符相同,再按照数字1<2排,所以结果  FILE1,FILE2
    回调:usort(arr,"strnatcmp")</span>//回调类的排序,把
//回调类的排序,把arr数组里的每一个元素丢到strnatcmp()[非自然数排序]处理【返回新的排序数组】
ログイン後にコピー

ルール: "k" なし、[値] に従って並べ替え、"a" で並べ替えKEY を保持することを意味し、「r」で逆順にソートします 「k」を持つ、[KEY] に従ってソート、「r」で逆順にソートする 「u」は にスローされる

 2.键值操作类:【都有返回值,没有在原来参数上修改】
   1.array_values(
arr);</span><span style="font-size:14px;font-family:&#39;Microsoft YaHei&#39;, STXihei !important;">//获取//获取arr中的值重排,去掉下标【返回值新索引数组】
   2.array_keys(
arr[,"str",true])//获取arr中所有字符是”str”的下标,形成索引数组,true表示区分大小写【返回新索引数组】
  3.array_search(“is”,
arr[,true]</span><span style="background-color:inherit;line-height:1.5;color:rgb(51,51,51);font-family:Monaco, Consolas, Courier, &#39;Lucida Console&#39;, monospace;"><span style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei&#39;, STXihei !important;">) </span><span style="color:rgb(0,0,0);font-weight:normal;font-family:&#39;Microsoft YaHei&#39;, STXihei !important;">//返回值"is"在
) //返回值"is"在arr中的key,找不到返回fales,true表示严格按照类型(8,”8”)【返回第一个匹配值】

        4.in_array(“str”,arr);//判断"str"在
arr中是否存在,【返回BOOL】

        5.is_array($arr);//判断是否是数组【返回BOOL】
        6.array_key_exists(key,
arr); //查询arr中是否有
key,【返回BOOL】

        7.array_flip($arr);// 交换键值,如有重复,后来居上,【返回新数组】
        8.array_reverse($arr,[true|false]);//数组顺序反转,param2是否保留原来键值【返回新关联/索引数组】
        9.array_column(array(),’name’[,name_two]) — 返回数组中指定的name列[可选参数,如果有返回name=>name_two的形式]【返回一维数组】
ログイン後にコピー
を意味します処理用コールバック関数 3. 要素の数と一意性 1.array_unique(arr);//arr内の重複した値を削除し、重複したものを保持 最初の値、[配列を返し、キー値は保持]

2.array_count_values($arr)//配列値が出現する回数をカウントします。[配列を返します。KEY は元の配列の値、VALUE はカウント数です]

3.count(arr[,1])/sizeof();//统计

arr的元素个数,参数”1”表示统计多维数组开启,默认0为关闭【返回统计个数】

4.回调函数

1.array_filter(arr,"function");//把
arr放到函数function中处理,【返回判断为TRUE的数据组成新数组,键值保留】
        2.array_walk(arr,"function"[,"data"]);//把
arr放到function(&v,
k,$data)中处理【返回值为bool】
        3.array_map(“function”,arr,
arr2,$arr3,….);//把所有数组返回到回调函数统一处理,【返回数组】
        4.array_reduce(arr,myfunction[,initial]):把一维数组
arr中的值依次传到自定义函数myfunction(v1,
v2)的v2上,v1为累加值类似于( .= ),[如果有initial,先把其当v1传进去]【返回字符串】
ログイン後にコピー

5.拆分,合并,分解,接合数组

  1.array_slice(arr,1[,2]);//在
arr中,从第二个开始取[,返回俩个值]【返回新数组(对原数组无影响),键值保留】
        2.array_splice(arr,1[,2,"aaa","bb"]);//</span><span style="font-size:14px;font-family:&#39;Microsoft YaHei&#39;, STXihei !important;"><span style="color:#ff0000;background-color:inherit;">删除或替换</span></span><span style="font-size:14px;font-family:&#39;Microsoft YaHei&#39;, STXihei !important;">,从
删除或替换,从arr第二个开始取,删除或替换2个值【返回值为新数组,拆掉原数组】
        3.array_combine(arr1,
arr2);//数组arr1为KEY,
arr2为VALUES结合形成新索引数组【返回索引数组】

        4.array_merge(arr1,
arr2,$arr3…);//数组进行合并,保留键值,有重复,后来者居上【返回新数组】

               array_merge发现有key值相同的,取后者;
               arr1+
arr2 发现有key值相同的,取前者,第二个重复的值丢弃

        5.array_intersect(arr1,
arr2)//返回两个数组的交集,键值不变

        6.array_diff(arr1,
arr2)//返回两数组的差集,返回的值为第一个数组的值,键值不变

        7.array_chunk(arr,2)//分割数组,把
arr按照【2个为一组】均等分割【返回一个二维数组】


  6.数组的数据结构【2.无返回值,传值引用,就直接对原数组进行了修改】
        1.array_shift($arr)//从开头,删除数组第一个元素
        2.array_unshift($arr,”one”,”two”)//从开头,添加元素
        3.array_pop($arr)//从结尾,删除数组最后一个元素
        4.array_push($arr,”aaa”);//从结尾,添加元素
        
        6.current($arr)//返回数组中的当前单元 比如是关联数组是不知道下标,可以输出当前数组的办法解决
        7.key($arr)//返回当前指针指向元素的键值
        8.next($arr)//当前指针下移
        9.pre($arr)//当前指针上移
        10.end($arr)//指针指到最后
        11.reset($arr)//指针回归到开头
        
        12.unset($arr)//销毁此数组
ログイン後にコピー

7.其他

 1.array_rand(arr,2);//随机返回两个
arr数组当中的key【返回值为值或者数组】

        2.shuffle(arr)//随机的重组
arr,顺序变乱【返回新数组,保留键值】

        3.array_sum(arr);//返回
arr的value的和【返回一个值】

        4.range(0,10,2,)//快速创建0,10的数组,间隔为2,所以有5个值【返回新索引数组】
        5.http_build_query($arr)//把关联数组转换成一个经过urlencode加密的URL eg:array[“a”=>2];=>URL:a=2&
       
字符串函数
       返回bool
            1.isset(a)//当
a=NULL 或不存在,返回false,反之为true

            2.empty(a)//当
a=NULL/”/array()/0/’0’/不存在 时 返回true,反之为false



        返回值为自字符
            1.substr(字符串,开始地方,[返回字符串的长度]);// 截取字符串的一部分,第一个字符位置为0
            2.substr_replace(str,"aaa",start[,length]);在
str上操作,从第start个开始,把【后边】的字符[全/或length个]替换

            3.sub_count($str,”is”[,5,10]);//[ 从第五个字符开始,搜索长度为10,]搜索is在$str中出现的次数,【返回次数】
            4.strstr($email,”@”[,true])    //从头开始搜索,无true返回@后边字符,有true返回@前边的字符[strrchr对比]
            5.strrchr($email,”@”)//从结尾开始搜索,返回@后的所有字符
            6.str_replace(被替换词,替换词,被搜索字符串,[统计替换次数$num])   前两个参数也可为数组,两个数组元素个数相同
            7.str_repeat(str,num);//重复
str字符串 num次,



          返回值为数字类的

             1.strpos($str,”@”);//返回@【第一次出现的位置】
             2.strrpos($str,”@”);//返回@【最后一次出现的位置】
             3.str_word_count($str[,0/1/2]);
                    //返回$str中单词的数量[0指返回次数,默认值/1指以数组形式返回单词值/2指返回关联数组,k为单词首字母下标,v单词值]
             4.strcmp(str1,
str2);//按ASCII码比较 str1>str2 则返回1 相等返回0 <返回-1  strcasecmp不区分大小写的比较

             5.strnatcmp(str1,
str2);//按自然数的排序比较,上边的比较10<2;本函数比较10>2,按自然数大小来的

                 strcasecmp(str1,
str2);strnatcasecmp//以上4个函数,str1,
str2比较,【返回值:相等0,小于-1,大于1】

             6. number_format(10000[,2]);        //==》10,000.00        把第一个参数格式化,保留2位小数
             7. strlen(string);<span style="color:rgb(69,69,69);font-family:arial, &#39;宋体&#39;, sans-serif, tahoma, &#39;Microsoft YaHei&#39;;">成功则返回字符串
string 的长度

             8. mb_strlen(string,&#39;utf8&#39;);//获取字符串
string长度,多字节的字符被计为 1。  


        文本处理类
            1.strtoupper($str)//字母全转为大写【返回全大写字符串】
            2.strtolower()//字母全转为小写【返回全小写字符串】
            3.strtotime(‘2015-10-10 10:10:10’);//指定时间转换为时间戳【返回时间戳】
            4.str_pad($str,length,[—,STR_PAD_BOTH]); //在str的两边<span style="background-color:inherit;">填补</span>“---“,<span style="background-color:inherit;">注意,length若小于
“---“,注意,length若小于str长度,不填补    

            5.trim($str[,”a”,STR_PAD_BOTH])// 去除两边/左/右的空白或”a”,默认是空白,或自定义字符
            6.floatval(“123.45aa”)//=》获取变量的浮点值【123.45】

            7.ucfirst()//整个$str首字母大写
            8.ucword()//$str每个单词首字母大写

        HTML类处理
            1.htmlspecialchars($str)//函数把【预定义字符】转换为【 HTML 实体】,&转换成&amp







              htmlspecialchars_decode($str);//把【HTML实体】转换成【预定义字符】,&amp转换成&
            2.htmlentities($str);,函数把【预定义字符】转换为【 HTML 实体】,&转换成&amp,有乱码问题,注意第二第三个参数,若编码不正确,会在实体化时把信息丢失
               html_entity_decode($str)////把【HTML实体】转换成【预定义字符】,&amp转换成&,  &gt 转成 <
            3.addslashes($html);               //添加转义字符“/”
               stripslashes($html);                 //删除转义字符“/”
            4.strip_tags($html);                     //去除HTML标签

            5.nl2br(str)                                //在
str中的换行/n前插入<br>,因为\n在源码可以换行,但是在浏览器窗口不行,有这个就可以

            6.iconv( from_charset ; to_charset,str);        //转化字符格式     
file_name = iconv("gb2312","utf-8",$file_name);
ログイン後にコピー

正则函数[原则,能用字符串函数解决不用正则,速度问题]<br/>

字符串的匹配查找

  1.preg_match(pattern,
subject,arr);</span>//按正则
//按正则pattern处理$subject,第一次匹配结果返回到数组中【函数的返回值为匹配次数】

            2.preg_match_all(pattern,
subject,arr</span><span style="background-color:inherit;font-weight:normal;"><span style="background-color:#FFA500;">)</span>//按正则</span><span style="background-color:inherit;font-weight:normal;">
)//按正则pattern处理$subject,全部匹配结果返回到数组中【函数的返回值为匹配次数】

            3.strstr($str,”@”[,true]);
            4.strpos,strrpos,substr($str,position)//联合使用
         字符串的替换
            1.preg_replace(pattenr,
replace,$str);//【强大的字符串处理函数】

                        在str中,把
parrern匹配的值替换成$replcae【返回值为处理后的字符串】

            2.str_replace(str,"aaa","bbb");//把
str中的aaa换成bbb

         字符串的分割和链接
            1.preg_split(pattern,
str);通过一个正则表达式分隔字符串【返回值为数组】                        

                        举例:$keywords = preg_split(“/[\s,]+/”, “hypertext language, programming”);



            结果Array([0] => hypertext,[1] => language[2] => programming)



            2.explode(“,”,str[,
limit_num]);//把$str按照”,”分割成一个数组[可选参数为返回数组的元素个数]【返回一个分割后的数组】

            3.impolde(“+”,arr);//把
arr里的元素按照“+”链接成一个字符串

         



文件处理函数
     [$file=c://php/index.php]
   基础函数
        1.file_exists($file)//文件是否存在,【true/false】
        2.filesize($file)  //返回文件的大小【大小字节/出错false】
        3.is_readale($file)//是否可读【返回bool】
        4.is_writeable($file)//是否可写【返回bool】
        5.is_executable($file)//是否可执行【返回bool】
        6.filectime($file)//文件创建时间【时间戳】
        7.filemtime($file)//文件修改时间【时间戳】
        8.fileatime($file)//文件访问时间【时间戳】
        9.stat($file)//返回文件的大部分信息【文件信息数组】

  目录的基本操作 
        1.basename($file)//返回文件名,index.php
        2.dirname($file)//返回文件的路径,c://php/
        3.pathinfo($file)//返回该文件路径的所有信息 
[“dirname”目录名] [“basename”文件名] [“extension”文件后缀]
      
    目录复制,删除,统计大小使用的总结:
        本质:依靠递归思想,对目录的的循环遍历,通过每一个文件的操作,得出结果
        函数:
                复制:copy(org,
to);mkdir()

                删除:unlink($file);mrdir();
                统计大小:filesize($file)
     遍历目录
        1.opendir(file)//打开一个目录,参数为目录名或目录路径【返回资源型的目录句柄
dir_handle,无权限返false】

        2.readdir($dir_handle);//读取目录,参数为目录句柄,while,返回当前指向对象的名字,目录指针后移【返回filename,没有是返false】
        3.closedir($dir_handle)//关闭打开的目录
        4.rewinddir($dir_handle) //倒回目录句柄,将目录指针重置到目录开始    


// 遍历文件夹$path,生成TABLE</span>
function menu_list($root_path){ $num=0;//存储条数
$dir_handle=( 建立和删除目录
ログイン後にコピー
    1.mkdir(“dir_name”);//建立一个空的目录
        2.rmdir(“dir_name”);//删除一个空的目录
            unlink(“file_name”)//删除一个文件,当删除目录是,必须删除该目录下的文件
ログイン後にコピー
<br/>
ログイン後にコピー
ログイン後にコピー
/**
 * 删除文件夹[也可以删除文件]
 * @param $root_path 该文件夹的路径<br style="background-color:inherit;"></span><span style="background-color:inherit;color:rgb(117,113,94);"> */<br style="background-color:inherit;"></span><span style="background-color:inherit;color:rgb(249,38,114);">function </span><span style="background-color:inherit;color:rgb(166,226,46);">del_dir</span>(<span style="background-color:inherit;color:rgb(253,151,31);"><em>$root_path){
// echo file_exists($root_path)."--&lt;br&gt;";<br style="background-color:inherit;"></span><span style="background-color:inherit;color:rgb(117,113,94);"></span><span style="background-color:inherit;color:rgb(249,38,114);">if</span>(<span style="background-color:inherit;color:rgb(249,38,114);">!</span><span style="background-color:inherit;color:rgb(102,217,239);"><em>file_exists</em></span>(<span style="background-color:inherit;color:rgb(253,151,31);"><em>$root_path))exit(&#39;文件不存在&#39;);
if(();exit;
ログイン後にコピー
   $dir_handle<span style="background-color:inherit;color:rgb(249,38,114);">=</span><span style="background-color:inherit;color:rgb(102,217,239);"><em>opendir</em></span>(<span style="background-color:inherit;color:rgb(253,151,31);"><em>$root_path);//打开此文件夹
while($cur_name<span style="background-color:inherit;color:rgb(249,38,114);">=</span><span style="background-color:inherit;color:rgb(102,217,239);"><em>readdir</em></span>($dir_handle)){//遍历文件夹
if($cur_name <span style="background-color:inherit;color:rgb(249,38,114);">==</span><span style="background-color:inherit;color:rgb(230,219,116);">"." </span><span style="background-color:inherit;color:rgb(249,38,114);">|| </span>$cur_name=="..")continue;//删除前两个默认的
$cur_path<span style="background-color:inherit;color:rgb(249,38,114);">=</span><span style="background-color:inherit;color:rgb(253,151,31);"><em>$root_path."/".$cur_name;<br style="background-color:inherit;"><span style="background-color:inherit;color:rgb(249,38,114);">if</span>(<span style="background-color:inherit;color:rgb(102,217,239);"><em>is_file</em></span>($cur_path)){
//是文件,执行删除文件
del_file($cur_path);<br style="background-color:inherit;">      }<span style="background-color:inherit;color:rgb(249,38,114);">else</span>{<br style="background-color:inherit;"><span style="background-color:inherit;color:rgb(117,113,94);">//是文件夹,删除文件夹,递归<br style="background-color:inherit;"></span><span style="background-color:inherit;color:rgb(117,113,94);"></span><span style="background-color:inherit;color:rgb(166,226,46);">del_dir</span>($cur_path);<br style="background-color:inherit;">      }<br style="background-color:inherit;">   }<br style="background-color:inherit;"><span style="background-color:inherit;color:rgb(102,217,239);"><em>closedir</em></span>($dir_handle);
(){
return ();
}
ログイン後にコピー

统计目录大小【得自定义函数,不自带】

<br/>
ログイン後にコピー
ログイン後にコピー
/**
 * 统计文件夹大小[也可以统计文件]
 * @param 文件夹的目录路径
 * @return 返回该目录的大小
 */
ログイン後にコピー

相关推荐:

180多个PHP常用函数总结

php常用函数总结表

php常用函数和函数库总结

以上がphp のいくつかの一般的な関数を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート