首頁 後端開發 php教程 關於php自訂函數及內部函數講解

關於php自訂函數及內部函數講解

Mar 01, 2018 pm 01:34 PM
php 內部 自訂

一、變數作用域
也稱為變數的範圍,變數的範圍即它定義的上下文背景(也是它的生效範圍),
大部分的PHP變數只有一個單獨範圍,這個單獨的範圍跨度同樣包含include 和require 引入的檔案。

global 關鍵字:函數內部可以使用global關鍵字,存取全域變數

也可以透過$GLOBALS 及其他超全域數組

例如:

$str = 'xxxx';
function test(){
//方法一:
global $str;
echo $str;
//方法二
//echo $GLOBALS['str']
}
登入後複製

二、靜態變數
靜態變數僅在局部函數域中存在,但當程式執行離開此作用域時其值並不會消失

static關鍵字
僅初始化一次
初始化時需要賦值
每次執行函數該值會保留
static修飾的變數是局部的,僅在函數內部有效
可以記錄函數的呼叫次數,因此可以在某有些條件下終止遞迴

2.1、全域變數、靜態變數

<?php

/**
 * 写出如下程序的输出结果:
 * <?php
 *
 * $count = 5;
 * function get_count()
 * {
 *     static $count;
 *     return $count++;
 * }
 * echo $count;
 * ++$count;
 *
 * echo get_count();
 * echo get_count();
 * 
 * ?>
 *
 */

$count = 5;
function get_count()
{
    static $count;
    return $count++;
}


echo $count;//5
++$count;

//这里还涉及到运算符:递减NULL值没有效果,但是递增NULL值为1
echo get_count();//null,第一次定义的static $count,内容为null,现返回内容null,再null++,结果为1
echo get_count();//1,static $count = 1,现返回1,再递增
登入後複製


2.2、函數傳遞

<?php


$var1 = 5;
$var2 = 10;


function foo(&$my_var)
{
    global $var1;
    $var1 += 2;
    $var2 = 4;
    $my_var += 3;
    return $var2;
}


$my_var = 5;
echo foo($my_var). "\n";//4
echo $my_var. "\n";//8
echo $var1;//7
echo $var2;//10
$bar = &#39;foo&#39;;
$my_var = 10;
echo $bar($my_var). "\n";//4
登入後複製


#2.3、函數的參考回傳

从函数返回一个引用,必须在函数声明和指派返回值给一个变量都是用引用运算符&
<?php

function &myFunc()
{
    static $b = 10;
    return $b;
}

echo myFunc();//10

$a = &myFunc();//此步a直接引用到b的地址

$a = 100;//修改a的值,相当于修改b的值

echo myFunc();//100 ,因为b是一个静态变量,该值会保留
登入後複製


三、外部檔案的匯入
如果給予路徑名稱依照路徑來找,否則從include_path找出
如果include_path也沒有,則從呼叫腳本檔案所在的目錄和目前工作目錄下尋找

當一個檔案被包含時,其中所包含的程式碼繼承了include所在行的變數範圍

假如以上都沒有找到,那麼如下報錯或警告
require 及require_once:失敗時會產生一個致命等級錯誤,並停止程式執行。
include 及 include_once :失敗時只產生一個警告等級錯誤,程式繼續運作。

兩者唯一差別在於當所包含的檔案程式碼已經存在時候,不在包含

四、系統內建函數
4.1、時間日期函數
date() //格式化時間戳記
strtotime() //將英文文字日期時間解析為Unix 時間戳記
mktime() //整數Unix 時間戳記
time() //取得目前時間時間戳記  
microtime () //取得毫秒
date_default_timezone_set() //設定預設時區

4.2、ip處理函數
long2ip : 將長整型轉換為字串形式帶點的網路標準格式位址( IPV4)
ip2long : 將IPV4 的字串網際網路協定轉換成長整數數字

4.3、列印函數
echo()
可以一次輸出多個值,多個值之間用逗號分隔。 echo是語言結構(language construct),而並不是真正的函數,因此不能作為表達式的一部分使用。

print():簡單型別變數的值(如int,string)
函數print()列印一個值(它的參數),如果字串成功顯示則傳回true,否則傳回false。

print_r():可以印出複雜型別變數的值(如數組,物件)  
可以簡單地將字串和數字印出來,而陣列則以括起來的鍵和值得列表形式顯示,並以Array開頭。但print_r()輸出布林值和NULL的結果沒有意義,因為都是印出"\n"。因此用var_dump()函數比較適合調試。
列印關於變數的易於理解的資訊,如果給出的是 string、integer 或 float,將列印變數值本身。如果給出的是 array,將會按照一定格式顯示鍵和元素。 object 與數組類似。 記住,print_r() 將把陣列的指標移到最後邊。使用 reset() 可讓指標回到起始處。

var_dump()
此函數顯示關於一個或多個表達式的結構訊息,包括表達式的類型與值。數組將遞歸展開值,透過縮排顯示其結構。
判斷一個變數的型別與長度,並輸出變數的數值,如果變數有值輸的是變數的值並回返資料型別。此函數顯示關於一個或多個表達式的結構訊息,包括表達式的類型與值。數組將遞歸展開值,透過縮排顯示其結構。

var_export():輸出或傳回變數的字串表示
此函數傳回傳遞給該函數的變數的結構資訊

您可以透過將函數的第二個參數設定為TRUE,從而傳回變數的表示。是其回傳的表示法是合法的 PHP 程式碼。

var_dump和print_r的区别:
var_dump返回表达式的类型与值而print_r仅返回结果,相比调试代码使用var_dump更便于阅读。

var_dump和var_export的区别:
var_export() 函数返回关于传递给该函数的变量的结构信息,是合法的 PHP 代码,可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示
var_dump() 打印变量的相关信息

printf():根据格式进行输出
sprintf():根据格式转换字符串,并返回
登入後複製


4.4、序列化serialize和反序列化unserialize

<?php   
$a = array(&#39;a&#39; => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');   

//序列化数组   
$s = serialize($a);  
echo $s;  
//输出结果:a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c";s:7:"Coconut";}   
echo '<br /><br />';  
  
//反序列化  
$o = unserialize($s);  
print_r($o);  
//输出结果 Array ( [a] => Apple [b] => banana [c] => Coconut )
登入後複製


4.5、json_encode 和json_decode

<?php 
$a = array(&#39;a&#39; => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');
//序列化数组
$s = json_encode($a);
echo $s;
//输出结果:{"a":"Apple","b":"banana","c":"Coconut"}
echo '<br /><br />';

//反序列化
$o = json_decode($s);

在上面的例子中,json_encode输出长度比上个例子中serialize输出长度显然要短
登入後複製

4.5、json_encode 和json_decode

rrreee

4.6、字串函數
php 字串使用總結


4.7、陣列函數

php 陣列運算

相關推薦:

php自訂函數記錄log日誌

PHP自訂函數判斷是哪種提交方式

###JS裡內建函數和自訂函數怎麼使用######

以上是關於php自訂函數及內部函數講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

See all articles