1、与时间相关的函数
Microtime()返回当前的Unix时间戳和微妙数
例如:
echo (microtime()); //0.01800200 1480901232;
echo microtime(true);//1480901178.711;
time()返回当前的Unix时间戳
echo time();//1480901232;
Date(“Y-m-d H:i:s”,$time)格式化一个时间戳括号内填一个时间戳,$time要格式化的时间戳
echo date('Y-m-d H:i:s','1480901232');//后面的参数是一个时间戳,如果不填默认为当前的时间戳
strtotime('2016-12-05 09:27:12');将时间格式的日期转化为时间戳
2、PHP中全局变量的定义及作用域
PHP中的在函数外部定义的变量在函数内部不能访问,
要是用global进行定义
将一个变量变为全局变量使用$_GLOGAL[]
<?php
global $name;//通过global定义的全局变量,在函数内部能被访问到
function animal() {
$name ='fish';
echo $name;
}
animal();
$GLOBALS['_beginTime'] = microtime(TRUE);//使用$_GLOBAL[]定义一个全局变量
3.php中const和define的区别(主要的区别还是是否能在类中定义)
defined('THINK_PATH') or define('THINK_PATH',__DIR__.'/');判断常量是否被定义,如果没有被定义,则定义一个常量
(1).const用于类成员变量的定义,一经定义,不可修改。define不可用于类成员变量的定义,可用于全局常量。
(2).const可在类中使用,define不能。
(3).const不能在条件语句中定义常量。
4、一些函数及常量的使用
魔术常量:
与字符串相关的函数:
strpos(string,find) 函数查找字符串在另一字符串中第一次出现的位置。
string为字符串,find为要查找的字符串
返回值:返回字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE。
查找 "php" 在字符串中第一次出现的位置:
<?php echo strpos("You love php, I love php too!","php"); ?>explode("$a",$str) 函数把字符串打散为数组。
参数说明:$a为规定在哪里分割字符串。,$str为要分割的字符串
$str = "Hello world. I love Shanghai!";
print_r (explode(" ",$str));
?>
返回结果:
Array ( [0] => Hello [1] => world. [2] => I [3] => love [4] => Shanghai! )
该例中在 “”处将字符串分割成数组
strstr()函数函数搜索字符串在另一字符串中的第一次
echo strstr("I love Shanghai!","Shanghai",$a); ?>
结果:Shanghai!
$a默认为false,
如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分。
返回字符串的剩余部分(从匹配点)。如果未找到所搜索的字符串,则返回 FALSE。 |
substr(string,start,length )函数返回字符串的一部分。
string,为要截取的字符串,start为要截取的字符串的开始的位置,length为要截取的长度
start 必需。规定在字符串的何处开始。
正数:从字符串的指定位置开始
负数 - 在从字符串结尾开始的指定位置开始 0从字符串第一个位置开始截取 |
正数:从开始位置开始,返回长度
echo substr("Hello world",10)."<br>";返回结果:d。从字符串第10位开始截取,截取到最后
echo substr("Hello world",-1)."<br>";返回d,从字符串末尾一位开始截取,截取到最后
echo substr("Hello world",0,-1)."<br>";返回hello worl,从字符串0位开始截取,截取到末尾的第一位
str_repeat()函数,把字符串重复置顶的次数
str_repeat("shanghai",2);结果:shanghai shanghai
str_replace(find,replace,string)函数,string也可以为数组
find为要查找的字符串
replace为要替换成的字符串
string为要在哪里查找
<?php
echo str_replace("world","Shanghai","Hello world!");
?>
结果:hello shanghai 就是将hello world 中的world替换为上海
strlen()成功返回字符串的长度,失败返回false
<?php echo strlen(“shanghai”)结果为:8
strtolower()把字符串转换为小写
strtoupper()把字符串转换为大写
trim(string,$a)移除字符串两侧的空白字符和其他预定义字符,string为目标字符串,$a可选,要移除的两侧的字符串,如果不填,默认删除,回车空格制表符
ltrim()移除字符串左侧的空白字符和其他预定义字符
rtrim()移除字符串右侧的空白字符和其他预定义字符
返回字符串的剩余部分(从匹配点)。如果未找到所搜索的字符串,则返回 FALSE。 |
负数 - 在从字符串结尾开始的指定位置开始 0从字符串第一个位置开始截取 |
substr_count()计算 "Shanghai" 在字符串中出现的次数:
<?php
echo substr_count("I love Shanghai. Shanghai is the biggest city in china.","Shanghai");
?>
number_format() 函数通过千位分组来格式化数字。
注释:该函数支持一个、两个或四个参数(不是三个)。
number | 必需。要格式化的数字。 如果未设置其他参数,则数字会被格式化为不带小数点且以逗号(,)作为千位分隔符。 |
decimals | 可选。规定多少个小数。如果设置了该参数,则使用点号(.)作为小数点来格式化数字。 |
decimalpoint | 可选。规定用作小数点的字符串。 |
separator | 可选。规定用作千位分隔符的字符串。仅使用该参数的第一个字符。比如 "xxx" 仅输出 "x"。 注释:如果设置了该参数,那么所有其他参数都是必需的。 |
例如:
<?php
echo number_format("5000000")."<br>";
echo number_format("5000000",2)."<br>";
echo number_format("5000000",2,",",".");
?>
结果:
5,000,000 一个参数,以逗号做为千分位的分割符
5,000,000.00有第二个参数时,规定末尾有几位小数,使用点(.)号做为小数点来格式化数字
5.000.000,00
与数组相关的函数
array_keys() 函数返回包含数组中所有键名的一个新数组。
<?php
$a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");
print_r(array_keys($a)
);
?>
结果:
<?php
$a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");
print_r(array_keys($a,"Highlander")
);
?>
结果:
Array ( [0] => Toyota )
in_array() 函数搜索数组中是否存在指定的值。
<?php
$people = array("Bill", "Steve", "Mark", "David");
if (in_array("Mark", $people)
)
{
echo "匹配已找到";
}
else
{
echo "匹配未找到";
}
?>
count($arr,1) 函数返回数组中元素的数目。参数1可选
count() 函数计算数组中的单元数目或对象中的属性个数。
对于数组,返回其元素的个数,对于其他值,返回 1。如果参数是变量而变量没有定义,则返回 0。
如果 mode 被设置为 COUNT_RECURSIVE(或 1),则会递归底计算多维数组中的数组的元素个数。
<?php $cars=array ( "Volvo"=>array ( "XC60", "XC90" ), "BMW"=>array ( "X3", "X5" ), "Toyota"=>array ( "Highlander" ) ); echo "常规计数:" .结果: 常规计数:3count($cars)."<br>"
; echo "递归计数:" .count($cars,1)
; ?>
递归计数:8
<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars)
;
?>
rsort
函数对索引数组进行降序排序。(根据键值)
对关联数组按照键值进行降序排序。 |
array_key_exists() 函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。
array_reverse() 函数以相反的元素顺序返回数组。
对关联数组按照键值进行降序排序。 |
数据库相关的知识
查询表的字段名字
select COLUMN_NAME from information_schema.COLUMNS where table_name = 'zxzq_wallet' and table_schema = 'scoredb';
解释:查询 COLUMN_NAME(这个字符) 从information_schema.COLUMNS(information数据库的COLUMNS表) 条件是table_name = 'zxzq_wallet' and table_schema = 'scoredbselect COLUMN_NAME,column_comment from INFORMATION_SCHEMA.Columns where table_name='表名' and table_schema='数据库名'
查询数据库的表名
select TABLE_NAME from INFORMATION_SCHEMA.TABLES where table_name like'zxzq_%' and TABLE_SCHEMA='scoredb'" ;
数组中根据某个值进行排序
根据数组中某个字段值进行排序
$wallet是一个二维数组
$flag=array();
foreach($wallet as $arr2){
$flag[]=$arr2["member_bankname"];
}
array_multisort($flag, SORT_DESC, $wallet);
array_multisort — 对多个数组或多维数组进行排序
SORT_ASC - 按照上升顺序排序
SORT_DESC - 按照下降顺序排序
Mysql中left的使用
$where .= " AND left(`time`,10) between '$stime' AND '$etime'";
多条件搜索时对时间的的截取,使用left(`要截取的字段的名字`,10)从左边开始截,截取十位。
M(‘表名’)->getDbFields()得到一个表的字段的名字
删除数组中为空的那一项
foreach ($tables as $key => $value) {
if( $value['table_comment'] == '' ) {
unset( $tables[$key] );
}
}
Array_filter()顾虑一维数组中为空的那一项
连表查询
Leftjoin左连接,以左表为主来连接右边,会列出左表的所有字段,右边表没有的填null,
INNER JOIN(相当于后边跟两张表的名字,但是连表查询用on,而关联两张表用where)
NNER JOIN 用于取得两个表中存在连接匹配关系的记录
SELECT article.aid,article.title,user.username FROM article INNER JOIN user ON article.uid = user.uid
等同于:
SELECT article.aid,article.title,user.username FROM article,user WHERE article.uid = user.uid