首页 > 技术文章 > 2016-08-04 PHP函数随笔

shuguoqing 2016-08-22 21:04 原文

函数:1. 封装性    2. 可重用性
(变量就是类里面的属性,函数就是类里面的方法)

【// 返回两个函数的值
$sum = 0;
function get_max($a, $b) {
      global $sum;
      $c = ($a>$b)?$a:$b;
      $sum = $a+$b;
   /* $array = [$c, $sum];
      return $array; */  
  或 return "$c == $sum";
  然后用 explode 分割字符串;
}
get_max(10, 20);


函数:
  1. 函数分为内置函数,自定义函数
  2. 自定义函数使用前先要声明
  3. 函数的调用
  4. 形参与实参【函数的参数视情况设定可有可没有,函数也可能没有返回值,函数的调用可以在函数声明之前也可在声明之后】
  5. 函数的返回值
  6. 函数的功能
  7. 函数传递分为传值和传引用【传值是传内容,两个变量没有关系
                                                 传引用传的是内存地址,两个变量指向同一个内存地址,一个变量发生改变另一个变量会跟着变】
  8. 函数体中变量是局部变量,函数体外是全局变量,全局变量要么以参数形式传递至函数体中,要么在函数体中用 global 声明
      超全局变量可以在函数中直接使用
    【超全局变量:
                          $_GET               $_POST                $_SERVER               $_REQUEST
                          $_COOKIE         $_SESSION          $_GLOBALS        
     】
  9. 函数名不区分大小写,js 里面区分
10. 函数声明时,可以设置默认参数,调用时默认参数可以省略,默认参数声明时必须放在最后
    【function sum($num1, $num2,  //设置默认参数“+”,默认加法运算//$op="+") {
             sum(10, 20);
       }
     】


PHP常用函数汇总:
一、数值操作函数: intval()  将变量转换成整数类型(转换的变量可以为数组或类之外的任何类型变量)
                                 ceil() 进一法取整
                                 floor() 舍去法取整
                                 rand() 取得一个随机整数,例如 rand(38, 49) 则会从 38 到 49 之间取一个随机数值
                                 // rand() 与 mt_rand() 区别:1. mt_rand() 比rand() 快四倍     2. mt_rand() 比rand()范围大
                                 mt_rand() 生成更好的随机数
                                 round() 对浮点数进行四舍五入
 
二、字符操作函数: strlen() 返回字符串长度
                                 substr() 返回字符串的子串
                                 strpos() 查找字符串首次出现的位置
                                 str_replace() 子字符串替换
                                 strtoupper() 将字符串里面出现的小写转化为大写                         
                                 strtolower() 将字符串里面出现的大写转化为小写
                                 strstr() 返回字符串在另一字符串中第一次出现的字符及该字符后的字符
                                 implode() 将一个一维数组的值转化为字符串 
                                 explode() 把字符串打散为数组
                                 addslashes() 返回在预定义字符之前添加反斜杠的字符串
                                                               预定义字符是:
                                                                      单引号(')
                                                                      双引号(")
                                                                      反斜杠(\)
                                                                      NULL
                                                        【该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串】
                                  stripslashes() 反引用一个引用字符串  
                                  trim() 去除字符串首尾处的空白字符(或者其他字符)
                                  ltrim() 删除字符串开头的空白字符(或其他字符)
                                  rtrim() 删除字符串末端的空白字符(或者其他字符)
                                  nl2br() 在字符串所有新行之前插入 HTML 换行标记 
                                  strip_tags() 从字符串中去除 HTML 和 PHP 标记
                                  htmlspecialchars()  把预定义的字符转换为 HTML 实体
                                                                    预定义的字符是:
                                                                           & (和号)成为 &
                                                                           " (双引号)成为 "
                                                                           ' (单引号)成为 '
                                                                           < (小于)成为 <
                                                                           > (大于)成为 >
 
三、日期操作函数:  date()  格式化一个本地时间/日期
                                  time()  返回当前时间的 Unix 时间戳
                                  microtime()  返回当前 Unix 时间戳和微秒数
                                  mktime()  返回一个日期的 Unix 时间戳           
                                  strtotime()  任何英文文本的日期时间描述解析为 Unix 时间戳
 
四、数组操作函数:  array_push() 向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度
                                  array_pop() 删除数组中的最后一个元素
                                  array_keys() 返回包含数组中所有键名的一个新数组
                                  array_values() 返回一个包含给定数组中所有键值的数组,但不保留键名
                                                           被返回的数组将使用数值键,从 0 开始并以 1 递增 
                                  array_rand() 从数组中随机选出一个或多个元素,并返回
                                                      【第二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数                                                             组,否则返回该元素的键名】  
                                  array_merge() 把一个或多个数组合并为一个数组
                                  array_search() 在数组中搜索给定的值,如果成功则返回相应的键名
                                  in_array() 搜索数组中是否存在指定的值
                                  sort() 对索引数组进行升序排序
                                            该函数为数组中的单元赋予新的键名。原有的键名将被删除
                                            如果成功则返回 TRUE,否则返回 FALSE  
                                  array_unique() 移除数组中重复的值,并返回结果数组
                                                            当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除 
                                                            返回的数组中键名不变
                                                            注释:被保留的数组将保持第一个数组项的键名类型
  
五、文件操作函数:  file() 把整个文件读入一个数组中
                                  file_get_contents() 把整个文件一次性读入一个字符串中
                                  file_put_contents() 把一个字符串写入文件中
                                  move_uploaded_files() 将上传的文件移动到新位置
                                  fopen()  打开文件或者 URL
                                      如果打开失败,本函数返回 FALSE 
                                  fread()  读取文件(可安全用于二进制文件)
                                  fwrite()  将内容写入一个打开的文件中
                                                函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止运行
                                                如果函数成功执行,则返回写入的字节数。如果失败,则返回 FALSE  
                                  feof()  检测是否已到达文件末尾
                                  fclose()  关闭一个打开的文件
                                  copy()  拷贝文件
                                  unlink()  删除文件 
                                  mkdir()  创建目录
                                                                若成功,则返回 true,否则返回 false 
 
六、mysql数据库操作函数:
                                  mysql_connect()  打开非持久的 MySQL 连接
                                                                 如果成功,则返回一个 MySQL 连接标识,失败则返回 FALS
                                                                                       脚本一结束,到服务器的连接就被关闭,除非之前已经明确用 mysql_close() 关闭了  
                                  mysql_pconnect()  打开一个到 MySQL 服务器的持久连接
                                                                   mysql_pconnect() 和 mysql_connect() 非常相似,但有两个主要区别:                                                                                                     1. 当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密                                                                                     码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接
                                                                          2. 其次,当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持打                                                                                   开以备以后使用(mysql_close() 不会关闭由 mysql_pconnect() 建立的连接
                                  mysql_query()  执行一条 MySQL 查询
                                  mysql_fetch_array()  从结果集中取得一行作为关联数组,或数字数组,或二者兼有
                                                                      返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false 
                                  mysql_fetch_assoc() 从结果集中取得一行作为关联数组
                                  mysql_num_rows()  返回结果集中行的数目
                                  mysql_affect_rows()  函数返回前一次 MySQL 操作所影响的记录行数
                                  mysql_insert_id()  返回上一步 INSERT 操作产生的 ID
                                                                  如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 mysql_insert_id() 返回 0 
 
七、正则操作函数:  preg_match()  用于进行正则表达式匹配,成功返回 1 ,否则返回 0 
                                                           匹配成功一次后就会停止匹配 
                                  preg_match_all() 用于执行一个全局正则表达式匹配
                                                                将实现全部结果的匹配 
                                  preg_replace() 执行一个正则表达式的搜索和替换
 
八、其他函数:         var_dump()  打印变量的相关信息
                                  print_r()  打印关于变量的易于理解的信息
                                  empty()  检查一个变量是否为空
                                  isset()  检测变量是否设置 
                                  unset()  销毁指定的变量
                                  ini_set() 用来设置php.ini的值,在函数执行的时候生效
                                  set_time_limit() 设置脚本最大执行时间
                                  session_start()  开启$_SESSION
                                                              需要在$_SESSION使用之前调用
                                  define()  定义一个常量
                                                 常量类似变量,不同之处在于:
                                                        在设定以后,常量的值无法更改
                                                        常量名不需要开头的美元符号 ($)
                                                        作用域不影响对常量的访问
                                                        常量值只能是字符串或数字
                                 defined()  检查某常量是否存在
                                                   若常量存在,则返回 true,否则返回 false 
                                 header()  向客户端发送原始的 HTTP 报头
                                                【认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数】

推荐阅读