PHP 自定義函式實現系統函式功能

2021-05-21 14:05:17 字數 3968 閱讀 9102

總是用別人寫好的函式 是不是覺得不爽?好,下面跟著我來寫吧~~以下**全部由自己編寫,絕無抄襲之嫌~~現貼上,僅供參考.(可能有些功能沒有寫全)

說明一下,

寫系統函式再拿來使用確實很蠢,但只是作為練習,還有,在面試時確實是演算法考得多,網上找來的面試題也大都要靠演算法/語法熟練才能完成~~!

1,自定義函式實現strlen()函式的功能,該函式返回乙個字串的長度;

function my_strlen2($str) 

for ($i=0;($str) !=="";$i++); 

return $i; 

}2,自定義函式實現strrev()函式功能,該函式把一段字串倒過來輸出(即字串反轉);

function my_strrev($str)!==''; $i++).$cut; 

} return $cut; 

}更簡單的方法:

function mystrlen($str) 

for ($i=mystrlen($str); $i>-1; $i--) 

echo $res; 

3.自定義函式實現count()函式功能,該函式返回陣列中元素的個數;

function my_count($arr) 

$i = 0; 

while ($arr) 

return $i; 

}4.氣泡排序法;

function my_sort($arr) 

} } 

return $arr; 

}5.自定義函式實現strpos()函式功能,該函式返回乙個字元在字串中的位置;

function my_strpos($str1,$str2) 

$i = 0; 

while (($res = $str1) !== "") 

} return false; 

}6.自定義函式實現strstr()函式功能,該函式擷取指字串後面的字元;

function my_strstr2($str1,$str2) 

for ($i=0;($res=$str1) !== "";$i++)) !=="";$j++) 

break; 

} } 

}7.試完成乙個程式,它統計自然數1到1000000中,至少有一位數為7(例如,307)的數字個數。

function mystrpos($str,$num)

for ($i=0; ($res=$str[$i])!=='';$i++) 

return false; 

}for($num=1; $num<1000; $num++) 

}8.自定義函式實現array_diff()功能該函式返回兩個陣列的差集部分(返回陣列1中有但陣列2中沒有的元素),保持鍵名不變

function my_in_array($str,$arr) 

} return false; 

}9.自定義函式實現array_fill()功能該函式用給定的值填充陣列, 

function my_array_fill2($num1,$num2,$str) 

foreach ($arr as $key=>$val) 

} return $arr2; 

} print_r (my_array_fill2(2,6,"hello"));

10.自定義函式實現str_split()功能該函式把一段字串切割到乙個陣列中,預設值的長度為1

function my_str_split($str,$num))!=='';$i++);   //遍歷字串,把每一次擷取到的字元放入陣列中 

if (isset($num)))!=='';$i++).=$cha; 

} return $result2; 

} } 

return $result; 

} $str = "good morning sir!"; 

print_r (my_str_split($str,3));

今天繼續貼一些: 

11. 自定義函式實現http_build_query()功能,該函式生成 url-encode 之後的請求字串 

} for ($i=0;($cut=$res)!=='';$i++) = '+';     //就用+號替換它,相當於str_replace函式 

12. 自定義函式實現str_replace()功能,該函式把字串的某些值替換成指定值 

function my_str_replace($arr, $str1, $str2))!==''; $i++) = $str1; 

} } 

} return $str2; 

} $arr = array("e","p","i","h"); 

$str2 = "hello world of php, i'm at home now!"; 

echo my_str_replace($arr,"-",$str2); //測試函式 

13. 面試題 

<?php 

/* 1.(獲取字母組合) 

題目要求: 

做乙個三位字母的組合功能。型如「abd,ade,acc,aef等等」; 

目標: 

1)字母的所有組合需要列印出來 

2)字母組合要排除。abc(三個字母順連續),cba(三個字母倒連續) ,aaa(三個字母相同)的情況 

3)最後結果需要計算出 abc情況的數量,cba情況的數量,aaa情況的數量,以及列印出來正確字母組合的數量。 

*/ /* 

思路: 

一,可利用字母所對應的acsii碼進行操作 

字母a-z對應acsii碼:97-122 

二,自用php chr()函式對字母進行ascii-->字母轉換 

三,用for迴圈對字母的ascii碼進行組合排列 

*/ /* 

結果: 

該程式基本實現了題目要求,下面是處理結果: 

1) 所有字母組合的數量為:  17576; 

2) 三個字母相同組合的數量為: 26; 

3) 三個字母正連續組合的數量為 24; 

4) 三個字母倒連續組合的數量為:  24; 

5) 正確字母組合的數量為:   17502; 

其他: 於題意,程式未實現列印除上述組合的組合,只是求得了它的結果數量. 

*/ function my_test() 

} } 

return $arr; 

} $res = my_test(); 

echo count($res);      //所有字母組合的數量 

echo '

'; for ($l=97;$l<=122;$l++) 

elseif ($value === chr($l).chr($l+1).chr($l+2)) 

elseif ($value === chr($l).chr($l-1).chr($l-2)) 

} } 

print_r (count($res1));echo '

'; //三連續組合的數量 

print_r (count($res2));echo '

'; //正連續組合的數量 

print_r (count($res3));echo '

'; //倒連續組合的數量 

$exp = count($res)-count($res1)-count($res2)-count($res3);  //計算正確字母組合的數量 

echo $exp;

PHP自定義函式

使用者自定義函式也稱自定義函式,它們不是php提供的,是由程式設計師建立的.由於自己建立了這樣的函式,所以就可以完全控制這些函式.因此可以讓乙個函式完全按照自己希望的方式執行.1,申明函式 在php中,定義函式的方法同其他程式語言幾乎一樣.下面是php申明函式的語法結構 function funct...

php自定義常用函式

遞迴建立目錄 function mk dir dir 常用列印方法 function p error,stop true 去除html所有標籤 空格以及空白,並擷取字串 包括中文 param string string 字串 param number sublength 字串長度 param str...

php 自定義封裝函式

陣列根據某個字段進行排序 陣列根據某個字段進行排序 param array array 需要排序的陣列 param string keys 根據某個key排序 param string sort 倒敘還是順序 return array function arraysort array keys so...