php的基礎知識(三)

来源:https://www.cnblogs.com/whrTC/archive/2018/07/09/9257938.html
-Advertisement-
Play Games

12、函數: 函數的功能: 定義:在真實的項目開發過程中,有些代碼會重覆利用,我們可以把它提出來,做成公共的代碼,供團隊來使用,這個我們封裝的代碼段,就是函數(功能)。 優點: 1、提高代碼的利用率。 2、減少開發時間。 3、減少代碼冗餘。 4、可維護性提高。 5、方便調試代碼。 函數的定義格式: ...


12、函數:

函數的功能:

  定義:在真實的項目開發過程中,有些代碼會重覆利用,我們可以把它提出來,做成公共的代碼,供團隊來使用,這個我們封裝的代碼段,就是函數(功能)。

  優點:

  1、提高代碼的利用率。

  2、減少開發時間。

  3、減少代碼冗餘。

  4、可維護性提高。

  5、方便調試代碼。

  函數的定義格式:

    function 函數名(參數1 = 值1,參數2 = 值2,參數3 = 值3,。。。。。。。。。)

    {

        函數體代碼

        return 返回值

    }

類別:

  類庫函數:

    is_null () ,is_array (),is_string ();

   自定義函數:

    (就是我們自己寫的函數,根據項目開發過程當中,咱們根據需求自己編寫出來的函數,可以供大家一起使用。)

 

  【function】:

    定義函數的關鍵字。

函數命名規範:

  與咱們的變數名幾乎一樣

  1、函數名不區分大小寫。

  2、函數名字使用英文,遵循規範。

  3、數字可以夾在中間或者後面。

  4、下劃線不屬於特殊符號。

  5、不用特殊符號。

  6、命名的時候要有意義。

  7、遵循駝峰或者下劃線。

  8、不能使用系統給咱們的函數名還有系統的關鍵字。

基本格式:

  1、函數都要以關鍵字function 開始。

  2、函數名後面要緊跟小括弧

  3、小括弧下麵跟著大括弧,大括弧後面是函數體。

  4、函數調用需要函數名加上小括弧;

沒有參數,沒有返回值。

有參數,沒有返回值。

function show($name = '張三' ,$val = '程式員') //$name = '',$val = '';

{

  echo '我的名字是'.$name.'我的職業是'.$val.'<br />';

}

參數就是:name,val

  如果你寫多個的話,用逗號隔開,可以寫多個,沒有上限。

  就相當於 張三 賦值給name。

有參數有返回值

重點:

  return:

    只是返回並沒有輸出。

    return後面代碼不執行

return:

  1、return關鍵字只要碰到立馬結束,後面代碼統統不執行。

  2、如果你想有多個返回值的時候,用數組去弄。

  3、函數調用表達式的值就是函數的返回值。

預設參數:

  1、預設參數就是不傳參的時候用的那個變數。

  2、如果你傳了參數,就用傳過來的值。

  3、如果形參帶有預設參數,一般放到後面。

  4、如果沒有預設參數,你必須給參數傳值,不然會報錯。(js不是)

註意事項:

  1、函數必須要function開始定義。

  2、function後面加空,加函數名,加空格,加小括弧。  

    3、函數名和變數名字命名規則基本一樣,唯一不一樣的是,不區分大小寫。

  4、函數名後面跟括弧,括弧裡面跟參數(就是變數)。

  5、如果有預設參數,用等號,等號後面是你要跟的值。

  6、調用函數的時候裡面傳入的值(實參),就是把函數體外的變數的值拿到函數體內來使用。

  7、函數體外的變數和函數體內的變數通常不是一個變數。

  8、函數可以有返回值,也可以沒有返回值,你如果想返回的話,你用return 關鍵字返回。

  9、函數的調用跟你定義的順序沒有半毛錢關係,但是變數不是。

  10、函數可以多次調用,沒有事。

 1 <?php
 2    function name() {
 3    echo '這首歌真好聽';}
 4    name ();
 5    echo '<br />';
 6    function info($name = '李四',$val = '程式員') {
 7    echo '我的名字是'.$name.'我的職業是'.$val.'<br />';}
 8    info ();
 9    function show($name = '張三',$val = '醫生') {
10    echo '他的名字是'.$name.'他的職業是'.$val.'<br />';}
11    show ();
12    function info2($name = '王五',$val = '警察') {
13    echo '我的名字是'.$name.'職業是'.$val.'<br />';}
14    info2 ('趙六','教師');
15 ?>

 

 

1 <?php
2    function say ($name = '張三',$age = 11,$sex = '男') {
3    echo '性名:'.$name.'<br />';
4    echo '年齡:'.$age.'<br />';
5    echo '性別:'.$sex.'<br />';
6    return '這是我的簡介。';
7    echo 111;}
8    echo say ('李四');     
9 ?>   

超全局變數:

1 <?php
2    function say () {
3    var_dump($GET);}
4    var_dump($GET);
5    say();
6 ?>

靜態變數:

 1 <?php
 2 function sum () {
 3    $num = 1;
 4    $num++;
 5    echo $num;}
 6 sum ();
 7 sum ();
 8 sum ();
 9 sum ();
10 echo '<br />';
11 function sum1 () {
12    static $num = 1;
13    $num++;
14    echo $num;}
15 sum1 ();
16 sum1 ();
17 sum1 ();
18 sum1 ();
19 ?>

形參和返回值的類型的約束:

function sum (int $num1, int $num2) //形參的;

{

  return $num1+$num2;

}

 sum(2,3);

//小括弧後面加上:加上數值類型,把函數體返回的值給轉成你限定的類型。

匿名函數:

所謂的匿名函數就是沒有名字。

//如果你想用,賦值給一個變數,然後該怎麼調用就怎麼調用,變數加上(),跟普通函數調用一樣。

$func = function () {}

$func(); 

 

 1 <?php
 2 function sum1($num1,$num2){
 3 return $num1+$num2;}
 4 var_dump(sum(1,2));
 5 echo '<br />';
 6 function sum2($num1,$num2){
 7 return $num1+$num2;}
 8 var_dump(sum('1','2'));
 9 echo '<br />';
10 function test(...$arr) {
11 var_dump($arr);}
12 test('abc',1,2,3,123,'cc');
13 echo '<br />'
14 function test1 ($a,$b,$c,$d) {
15 var_dump ($a,$b,$c,$d);}
16 $arr = [1,'wang',1.87,'big'];
17 test1(...$arr);
18 echo '<br />';
19 $func = function () {
20 echo '匿名函數';};
21 $func ();
22 
23 ?>

 

 13、常用函數:

數學函數:

  1、隨機:rand,mt_rand

  2、小數:floor:向上取整;

        ceil:向下取整;

        round:四捨五入法取整;

  3、其他:abs:絕對值;

        pi:圓周率;

        M_PI:常量,與pi()函數的返回值相同;

        pow:指數表達式;

        max:最大值;

        min:最小值;

字元串函數:

  1、大小寫轉換:

    strtolower:轉換為小寫;

    strtoupper:轉換為大寫;

    lcfirst:首字母小寫;

    ucfirst:首字母大寫;

    ucwords:每個單詞首字母大寫;

  2、空白處理:

    trim:去掉首尾的空白字元;

    ltrim:去掉開頭的空白字元;

    rtrim/chop:去掉結尾的空白字元;

  3、查找定位:

    strstr/strchr:返迴首次出現到結尾的內容;

    strrchr:返回最後一次出現到結尾的內容;

    stristr:strstr忽略大小寫的版本;

    strpos:返迴首次出現的位置;

    stripos:strpos忽略大小寫版本;

    strrpos:返回最後一次出現的位置;

    strripos:strrpos忽略大小寫版本;

    substr:子串提取,可以通過下標方式獲取單個字元($str{n});

    strpbrk:返回(字元列表中任意字元)首次出現到結尾的內容;

  4、比較:

    strcmp:二進位比較字元串;

    strcasecmp:strcmp忽略大小寫;

    strnatcmp:自然順序比較;

    strnatcasecmp:strnatcmp的忽略大小寫版本;

  5、順序:

    str_shuffile:打亂順序;

    strrev:逆序字元串;

  6、轉換:

    chr:將ASCⅡ碼值轉換為字元;

    ord:返回字元串的ASCⅡ碼值;

數組常用函數:

  1、數組中元素指針的移動:

    next:向後移動,指向下一個元素;

    prev:向前移動,指向前一個元素;

    end:指向最後一個元素;

    reset:複位,重新指向第一個元素;

  2、鍵和值相關的操作:

    key:獲取數組當前元素的鍵;

    current/pos:獲取數組當前元素的值;

    array_keys:獲取所有的鍵;

      array_values:獲取所有的值,併為其建立數字索引;

    array_key_exists/key_exists:判斷給定的鍵是否在數組中;

    in_array:判斷給定的值是否在數組中;

    array_search:根據值返回給定的鍵名;

    array_count_values:統計數組中所有的值出現的次數;

  3、添加刪除元素:

    array_shift:將數組開頭的元素移出數組;

    array_unshift:向數組開頭添加一個或更多個元素;

    array_push:向數組末尾壓入一個或多個元素;

    array_pop:彈出數組末尾的一個元素;

  4、排序相關:

    shuffile:將數組打亂(轉換為索引數組);

    sort:對數組進行排序(排序之後重新索引);

    resort:對數組進行逆向排序;

    asort:對數組進行排序並保持索引關係;

    natsort:用自然順序演算法對數組進行排序;

    natcasesort:natsort忽略大小寫的版本;

    ksort:對數組按照鍵名進行排序;

    krsort:對數組按照鍵名逆向排序;

    usort:使用用戶自定義的比較函數對數組的值進行排序;

    uasort:使用用戶自定義的的比較函數對數組的值進行排序並保持索引關係;

    uksort:使用用戶自定義的比較函數對數組的鍵名進行排序;

  5、元素運算:

    array_sum:計算數組中的所有值的和;

    array_product:計算數組中所有值的乘積;

    count/sizeof:計算數組中元素的個數;

  6、創建數組:

    range:建立一個包含指定範圍單元的數組(可以指定步幅,可以指定遞減);

    compact:創建一個包含變數與其值的數組;

    extract:從數組中將變數導入到當前的符號表(與compact功能相反);

    array:新建一個數組;

    array_merge:合併一個或多個數組(關聯會覆蓋,索引會重新索引,若想保留索引可以使用'+')

    array_merge_recursive:遞歸合併一個或多個數組;

    array_combine:用一個數組的值作為鍵名,另一個數組的值作為值創建數組;

  7、其他:

    array_chunk:將數組分割成指定長度的小數組;

    array_map:將回調函數作用到每個元素上,返回處理的結果數組(新數組);

    array_walk:將回調函數作用到每個元素上(會改變原數組),返回真假;

    array_filter:使用回調函數過濾數組(回調函數返回真的才會出現在結果中);

    array_flip:返回交換鍵和值後的新數組;

    array_rand:隨機從數組中抽取一個或多個元素的鍵;

    array_replace:使用後面的數組中元素替換第一個數組中的元素;

    array_reverce:返回一個單元順序相反的數組(關聯數組會保持鍵值對應,索引數組需要傳遞第二個參數);

    array_unique:移出數組中重覆的值。

 

 1 <?php
 2 $num = rand(1,6);
 3 ehco $num;
 4 echo '<br  />';
 5 $num1 = mt_rand(1,6);
 6 echo '$num1';
 7 echo '<br />';
 8 $num2 = 5.4;
 9 ehco floor($num2);
10 echo '<br />';
11 $num3 = 6.1;
12 echo ceil($num3);
13 echo '<br />';
14 $str = 'ABCdef';
15 echo strtolower($str);
16 echo '<br />';
17 $str1 = 'ABCdef';
18 echo strtoupper($str1);
19 echo '<br />';
20 $str2 = 'abcdefg';
21 echo substr($str2,2,4);
22 echo '<br />';
23 echo strpos($str2,'c');
24 ?>

14、文件函數:

     

  

 1 <?php
 2 function add(){
 3 echo '這是資料庫添加方法'}
 4 function del() {
 5 echo '這是刪除方法';}
 6 function update (){
 7 echo '這是修改方法';}
 8 function select() {
 9 echo '這是查詢方法';}
10 
11 ?>

 

1 <?php
2 include(mysql/wenjianbaohan.php);
3 add();
4 ?>

<?php
require('mysql/wenjianbaohan.php')
select ();
?>

require和include的區別:

require('......')這個函數一般放在php文件最前面,程式在執行前就會先導入要引用的文件;

include('......')這個函數一般放在程式的流程式控制制裡面。只有程式在執行碰到才會引用。可以簡化程式的執行流程。

require:一個文件存在錯誤時,執行就會中斷,並返回一個致命錯誤。

include:一個文件存在錯誤時,程式不會中斷執行,會彈出一個警告。

 

 

 

    

 

 

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Angular中的裝飾器是一個函數,它將元數據添加到類、類成員(屬性、方法)和函數參數。 用法:要想應用裝飾器,把它放在被裝飾對象的上面或左邊。 Angular使用自己的一套裝飾器來實現應用程式各部件之間的相互操作。 這個地方是前面幾個模塊(Modules), 指令(Diretives)、組件(Co ...
  • 一、面向對象簡介 Python設計之初,就是一門面向對象的語言,在Python中一切皆對象,而且在Python中創建一個對象也很簡單,今天我們就來學習一下Python的面向對象的知識。 二、兩種編程方式 在C#、Java中,只能使用面向對象編程,在Ruby、Python中可以使用函數編程以及面向對象 ...
  • 原創 題目為:()()()+()()()=()()() 將1~9這9個數字填入括弧,每個數字只能用一次。 枚舉: 1 public class Test { 2 public static void main(String[] args){ 3 int a[]=new int[9]; 4 int f ...
  • 創建一個socketserver 至少分以下幾步 First, you must create a request handler class by subclassing the BaseRequestHandlerclass and overriding its handle() method; ...
  • 1、引言 點陣圖是使用位(bit)數組來對數據進行統計,排序和去重,其結構圖如下: 其中點陣圖的索引映射需要存儲的值,點陣圖索引所在位置的值表示索引對應的值是否已經存儲。 2、介面 3、實現 定義靜態byte數組常量,用於快速檢驗點陣圖上索引對應的值: 聲明欄位: 其中size為點陣圖的大小;當點陣圖的size ...
  • O’Reilly的電子書《Reactive Microservices Architecture》講述了微服務/分散式系統的一些設計原則,本文是筆者閱讀完此書後的理解。 微服務相比傳統的單體應用能夠帶來快速的響應,以小的系統產生大的影響。而隨著網路加速、磁碟成本降低、RAM成本降低、多核技術的發展、 ...
  • 1 /* 2 queue.h -- Queue介面 3 */ 4 5 #ifndef QUEUE_H 6 #define QUEUE_H 7 8 #define MAXQUEUE 10 9 10 typedef int Item; 11 12 typedef struct node 13 { 14 ...
  • 問題的提出: 俄羅斯方塊允許90度的坡,是不是有點不夠科學#(滑稽) 想辦法加一種會“滑坡”的方塊 本文兩大部分: 詳細的描繪是怎樣的“流動” 寫代碼,並整合進游戲 本文基於我寫的 俄羅斯方塊(一):簡版 事先上兩個動圖, 說明下我想做什麼 第一部分 首先是假象圖 這是一個長條逐漸“癱軟”的過程 歸 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...