
PHP初级函数
一、call_user_func
// 官网地点: http://php.net/manual/zh/function.call-user-func.php
二、get_class
// 官网地点: http://php.net/manual/zh/function.get-class.php
三、get_called_class
// 官网地点: http://php.net/manual/zh/function.get-called-class.php
四、array_map
// 官网地点:http://php.net/manual/zh/function.array-map.php
//为数组的每一个元素使用回调函数
示例:
$str = '1 ,2,3';
$res = array_map(function ($v) {
return intval(trim($v)) * 2;
}, explode(',', $str));
$res的前往后果:
array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(6) }五、strpos
// http://php.net/manual/zh/function.strpos.php
//查找字符串初次呈现的地位,从0开端编码,不找到前往false
示例:
$time = "2019-03-02 12:00:00";
if(strpos($time,':') !== false){
$time = strtotime($time);
}
echo $time;六、array_reverse
// 官网地点:http://php.net/manual/zh/function.array-reverse.php
//前往单位程序相同的数组
示例:
$time = "12:13:14";
$arrTime = array_reverse(explode(':',$time));
var_dump($arrTime);
array(3) { [0]=> string(2) "14" [1]=> string(2) "13" [2]=> string(2) "12" }七、pow
// 官网地点:http://php.net/manual/zh/function.pow.php
//指数表白式
示例:
$time = "12:13:14";
$arrTime = array_reverse(explode(':',$time));
$i = $s = 0;
foreach($arrTime as $time){
$s += $time * pow(60,$i); // 60 的 $i 次方
$i ++;
}
var_dump($s);
int(43994)八、property_exist
// 官网地点:http://php.net/manual/zh/function.property-exists.php
// 反省工具或类能否具备该属性
//假如该属性存正在则前往 TRUE,假如没有存正在则前往 FALSE,犯错前往 NULL
示例:
class Test
{
public $name = 'daicr';
public function index()
{
var_dump(property_exists($this,'name')); // true
}
}
九、passthru
// 官网地点:http://php.net/manual/zh/function.passthru.php //执行内部顺序而且显示原始输入 //性能以及exec() system() 有相似的地方 示例: passthru(\Yii::$app->basePath.DIRECTORY_SEPARATOR . 'yii test/index');
十、array_filter
// 官网地点:http://php.net/manual/zh/function.array-filter.php
//用回调函数过滤数组中的单位
示例:
class TestController extends yii\console\Controller
{
public $modules = '';
public function actionIndex()
{
//当没有应用callBack函数时,array_filter会去除了空值或许false
$enableModules = array_filter(explode(',',$this->modules));
var_dump(empty($enableModules)); //true
//当应用callBack函数时,就会用callBack过滤数组中的单位
$arr = [1,2,3,4];
$res = array_filter($arr,function($v){
return $v & 1; //先转换为二进制,正在按位进行与运算,失去奇数
});
var_dump($res);
//array(2) { [0]=> int(1) [2]=> int(3) }
}
}十一、current
// 官网地点:http://php.net/manual/zh/function.current.php //前往数组中确当前单位 $arr = ['car'=>'BMW','bicycle','airplane']; $str1 = current($arr); //初始指向拔出到数组中的第一个单位。 $str2 = next($arr); //将数组中的外部指针向前挪动一名 $str3 = current($arr); //指针指向它“以后的”单位 $str4 = prev($arr); //将数组的外部指针倒回一名 $str5 = end($arr); //将数组的外部指针指向最初一个单位 reset($arr); //将数组的外部指针指向第一个单位 $str6 = current($arr); $key1 = key($arr); //从联系关系数组中获得键名 echo $str1 . PHP_EOL; //BMW echo $str2 . PHP_EOL; //bicycle echo $str3 . PHP_EOL; //bicycle echo $str4 . PHP_EOL; //BMW echo $str5 . PHP_EOL; //airplane echo $str6 . PHP_EOL; //BMW echo $key1 . PHP_EOL; //car var_dump($arr); //原数组没有变
十二、array_slice
// 官网地点:http://php.net/manual/zh/function.array-slice.php
//从数组中掏出一段
示例:
$idSet = [1,2,3,4,5,6,7,8,9,10];
$total = count($idSet);
$offset = 0;
$success = 0;
while ($offset < $total){
$arrId = array_slice($idSet,$offset,5);
//yii2的语法,此处,留意array_slice的用法就行
$success += $db->createCo妹妹and()->update($table,['sync_complate'=>1],['id'=>$arrId])->execute();
$offset += 50;
}
$this->stdout('共:' . $total . ' 条,胜利:' . $success . ' 条' . PHP_EOL,Console::FG_GREEN); //yii2的语法1三、mb_strlen()
// 官网地点:http://php.net/manual/zh/function.mb-strlen.php //猎取字符串的长度 //strlen 猎取的是英文字节的字符长度,而mb_stren能够按编码猎取中文字符的长度 示例: $str1 = 'daishu'; $str2 = '袋鼠'; echo strlen($str1) . PHP_EOL; //6 echo mb_strlen($str1,'utf-8') . PHP_EOL; //6 echo strlen($str2) . PHP_EOL; // 4 一个中文占 2 个字节 echo mb_strlen($str2,'utf-8') . PHP_EOL; //2 echo mb_strlen($str2,'gb2312') . PHP_EOL; //2
1四、list
// 官网地点:http://php.net/manual/zh/function.list.php //把数组中的值赋给一组变量 示例: list($access,$department)= ['all','1,2,3']; var_dump($access); // all
1五、strcasecmp
// 官网地点:https://www.php.net/manual/zh/function.strcasecmp.php //二进制平安比拟字符串(没有区别巨细写) //假如 str1 小于 str2 前往 < 0; 假如 str1 年夜于 str2 前往 > 0;假如二者相等,前往 0。 示例: $str1 = 'chrdai'; $str2 = 'chrdai'; var_dump(strcasecmp($str1,$str2)); // int 0
1六、fopen rb
// 官网地点:https://www.php.net/manual/zh/function.fopen.php //一、应用 'b' 来强迫应用二进制模式,这样就没有会转换数据,躲避了widown以及unix换行符欠亨招致的成绩, //二、另有就是正在操作二进制文件时假如不指定'b'标志,可能会碰着一些希奇的成绩,包罗坏掉的图片文件和对于\r\n 字符的希奇成绩。 示例: $handle = fopen($filePath, 'rb');
1七、fseek
// 官网地点:https://www.php.net/manual/zh/function.fseek.php //正在文件指针中定位 //必需是正在一个曾经关上的文件流外面,指针地位为:第三个参数 + 第二个参数 示例: //将文件指针挪动到文件末尾 SEEK_END + 0 fseek($handle, 0, SEEK_END);
1八、ftell
// 官网地点:https://www.php.net/manual/zh/function.ftell.php //前往文件指针读/写的地位 //假如将文件的指针用fseek挪动到文件末尾,正在用ftell读取指针地位,则指针地位即为文件巨细。 示例: //将文件指针挪动到文件末尾 SEEK_END + 0 fseek($handle, 0, SEEK_END); //此时文件巨细就等于指针的偏偏移量 $fileSize = ftell($handle);
1九、basename
// 官网地点:https://www.php.net/manual/zh/function.basename.php
//前往门路中的文件名局部
示例:
echo basename('/etc/sudoers.d'); // sudoers ,留意不文件的后缀名,以及pathinfo($filePath)['filename']性能差没有多20、pathinfo
// 官网地点:https://www.php.net/manual/zh/function.pathinfo.php
//前往文件门路的信息
示例:
$pathParts = pathinfo('/etc/php.ini');
echo $pathParts['dirname'] . PHP_EOL; // /etc ,前往门路信息中的目次局部
echo $pathParts['basename'] . PHP_EOL; // php.ini ,包罗文件名以及拓展名
echo $pathParts['extension'] . PHP_EOL; // ini ,拓展名
echo $pathParts['filename'] . PHP_EOL; // php ,只有文件名,没有蕴含拓展名 ,以及basename()函数性能差没有多2一、headers_sent($file, $line)
// 官网地点:https://www.php.net/manual/zh/function.headers-sent.php //检测 HTTP 头能否曾经发送 //一、http头曾经发送时,就无奈经过header()函数增加更多头信息,应用次函数最少能够避免HTTP头犯错 //二、可选参数$file以及$line没有需求先界说,假如设置了这两个值,headers_sent()会把文件名放正在$file变量,把输入开端的行号放正在$line变量里
2二、header('$name: $value', $replace)
// 官网地点:https://www.php.net/manual/zh/function.header.php
//发送原生 HTTP 头
//一、留意:header必需正在一切实际输入以前挪用能力失效。
//二、header的$replace参数默许为true,会主动用前面的交换后面相反的头信息,假如设为false,则强迫使相反的头信息并存
示例:
public function sendHeader()
{
if (headers_sent($file, $line)) {
throw new \Exception("Headers already sent in {$file} on line {$line}");
}
$headers = [
'Content-Type' => [
'application/octet-stream',
'application/force-download',
],
'Content-Disposition' => [
'attachment;filename=test.txt',
],
];
foreach($headers as $name => $values) {
//一切的http报头的称号都是首字母年夜写,且多个单词以 - 分隔
$name = str_replace(' ', '-', ucwords(str_replace('-', ' ', $name)));
$replace = true;
foreach($values as $value) {
header("$name: $value", $replace);
$replace = false; //强迫使相反的头信息并存
}
}
}2二、array_multisort($array1, SORT_ASC|SORT_DESC, $array2)
// 官网地点:https://www.php.net/manual/zh/function.array-multisort.php // 对多个数组或多维数组进行排序 //阐明: $array1 : 排序后果是一切的数组都按第一个数组的程序进行陈列 // $array2 : 待排序的数组
示例:
$array2 = [
1000 => [
'name' => '张三',
'age' => 25,
],
1001 => [
'name' => '李四',
'age' => 26,
],
];
//假如想将 $array2 依照 age 进行排序。
//不外需求留意的是:两个数组的元素个数必需相反,否则就会呈现一个正告信息:
//Warning: array_multisort() [function.array-multisort]: Array sizes are inconsistent in ……
//第一步:将age的数据拿进去作为一个独自的数组,作为排序的根据。
$array1 = [];
foreach ($array2 as $key => $val) {
array_push($array1, $val['age']);
}
//第二步骤:应用 array_multisort() 进行排序。
array_multisort($array1, SORT_DESC, $array2);
var_dump($array2);
//数组的健名字假如是数字会被重置,字符串没有会
// array (size=2)
// 0 =>
// array (size=2)
// 'name' => string '李四' (length=6)
// 'age' => int 26
// 1 =>
// array (size=2)
// 'name' => string '张三' (length=6)
// 'age' => int 22三、strtr 转换指定字符串
//官网文档:https://www.php.net/manual/zh/function.strtr.php
strtr(string $str , string $from , string $to )
strtr ( string $str , array $replace_pairs )
//例如:
$str = "<div class='just-sm-6 just-md-6'><div class='control_text'>{label}<font>*</font></div></div> <div class='just-sm-18 just-md-18'><div class='control_element'>{input} {hint} {error}</div></div>";
$parts = [
'{label}' => '春秋',
'{input}' => '<input name="age" id="user-age" class="inputs" value="" />',
'{hint}' => '春秋必需是 0-200 间接的数字',
'{error}' => '格局没有正确',
];
$string = strtr($str, $parts);
echo htmlspecialchars($string); //<div class='just-sm-6 just-md-6'><div class='control_text'>春秋<font>*</font></div></div> <div class='just-sm-18 just-md-18'><div class='control_element'><input name="age" id="user-age" class="inputs" value="" /> 春秋必需是 0-200 间接的数字 格局没有正确</div></div>
var_dump(Yii::getAlias('@webroot'));
var_dump(Yii::getAlias('@web'));2四、ReflectionClass 陈诉类的无关信息
//ReflectionClass 陈诉了一个类的无关信息 //官网地点:https://www.php.net/manual/zh/class.reflectionclass.php //例如: $class = new \ReflectionClass($this); //打印以后类文件所正在目次 var_dump(dirname($class->getFileName())); //var/www/html/basic/controllers
2五、call_user_func_array 挪用回调函数,并把一个数组参数作为回调函数的参数
//官网地点:https://www.php.net/manual/zh/function.call-user-func-array.php
function foobar($arg, $arg2) {
echo __FUNCTION__, " got $arg and $arg2\n";
}
call_user_func_array("foobar", array("one", "two"));
//输入后果: foobar got one and two以上就是php初级函数有哪些的具体内容,更多请存眷资源魔其它相干文章!
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!