主頁 > 後端開發 > php小結

php小結

2021-04-01 17:07:03 後端開發

函式定義常量

define
define(“PI”,3.14);

使用const關鍵字

 

const PI= 3;

特殊常量

雙下劃線開始+常量名+雙下劃線結束,稱為魔術常量,魔術常量的值通常會跟著環境變化,但是不能改變
__DIR__:當前被執行腳本所在電腦的絕對路徑
__FILE__:當前被執行腳本所在電腦的絕對路徑(帶自己檔案的名字)
__LINE__:當前所屬的行數
__NAMESPACE__:當前所屬的命名空間
__CLASS__:當前所屬的類
__METHOD__:當前所屬的方法

自動轉換

echo $a +$b;

強制轉換

echo (float)$a,(float)$b;

型別判斷

var_dump(is_int($a));

var_dump(is_string($a));

資料判斷

empty():判斷資料的值是否為空 isset():判斷變數本身是否存在
$c1 = 1;
$c3 = ‘’;
var_dump(empty($c1),isset($c1));
var_dump(empty($c3),isset($c3));

三目運算子(分支結構)

 

a?b:c 如果a成立,那么執行b,否則執行c
如果運算式復雜,用括號包起來;b、c都可以是另外一個三目運算

$a =10;
$b =$a > 10 ? 100 : 0;
echo $b;

自操作運算子

$a =1, $b = 1;
$a++;++$b;
echo $a,$b; //獨立運算

替代語法 {用:替代 }用end+對應的起始標記替代

  例: if(){}; -> if(): endif;
  可以使用替代語法的:if switch for while foreach

檔案包含四種形式

在PHP中檔案的包含有四種形式(兩種大形式)
Include:包含檔案
Include_once:系統會自動判斷檔案包含程序中,是否已經包含過(一個檔案最多被包含一次)
Require:與include相同
Require_once:以include_once相同

 

include和include_once的區別

Include系統會碰到一次,執行一次;如果對統一個檔案進行多次加載,那么系統會執行多次;
Include_once:系統碰到多次,也只會執行一次,

Require和include的區別

本質都是包含檔案,唯一的區別在于包含不到檔案的時候,報錯的形式不一樣
Include的錯誤級別比較輕:不會阻止代碼執行 Require要求較高:如果包含出錯代碼不再執行(require后面的代碼)

函式定義語法

Function 函式名([引數]){
//函式體
//回傳值:return 結果; }

函式的呼叫特點

只要系統在記憶體中能夠找到對應的函式,就可以執行(函式的呼叫可以在函式定義之前)

函式在定義的時候,對應的b形參采用的是取地址,a形參是取值,所以b改變了自己也改變了外部

 

全域變數不能在區域空間內使用

 

在這里插入圖片描述

 

區域變數也不能在全域內訪問

 

在這里插入圖片描述

 

使用超全域變數則可以不受全域變數和區域變數的限制

echo $GLOBALS[‘全域變數’];

 

在這里插入圖片描述

 

運用另外一種定義方法也可以實作區域訪問全域變數:

Global關鍵字:是一種在函式里面定義變數的一種方式
1、 如果使用global定義的變數名在外部存在(全域變數),那么系統在函式內部定義的變數直接指向外部全域變數所指向的記憶體空間(同一個變數);
2、 如果使用global定義的變數名在外部不存在(全域變數),系統會自動在全域空間(外部)定義一個與區域變數同名的全域變數

 

 

static:靜態變數

靜態變數的原理

系統在進行編譯的時候就會對static這一行為初始變數賦值,在函式呼叫的時候會自動跳過static這一行,所以$count++可以一直執行遞增


靜態變數的使用:


1.為了統計當前函式被呼叫的次數
2.為了統籌函式多次呼叫得到的不同結果(遞回思想)

 

可變函式在系統使用的程序中還是比較多的,尤其是使用很多系統函式的時候:需要用戶在外部定義一個自定義函式,但是是需要傳入到系統函式內部使用,

將一個用戶定于的函式傳入另外一個函式去使用的程序,稱之為回呼程序,被傳入的函式稱之為回呼函式

 

在這里插入圖片描述

 

變數保存匿名函式,本質得到的是一個物件(Closure)

 

在這里插入圖片描述

 

closure:閉包

函式內部有一些區域變數(要執行的代碼塊)在函式執行之后沒有被釋放,是因為在函式內部還有對應的函式在參考(函式的內部函式:匿名函式)

 

在這里插入圖片描述

 

引號方式

比較適合定義那些比較短(不超過一行)或者沒有結構要求的字串 如果有結構要求,或者內容超過一行,可以使用以下兩種結構定義

nowdoc字串:沒有單引號的單引號字串 heredoc字串:沒有雙引號的雙引號字串

 

在這里插入圖片描述

 

在PHP中系統常用的轉義符號

\’:在單引號字串中顯示單引號
\”:在雙引號字串中顯示雙引號
\r:代表回車(理論上是回到當前行的首位置)
\n:代表新一行
\t:類似tab鍵,輸出4個空格
$:在PHP中使用$符號作為變數符號,因此需要特定識別

單引號和雙引號的區別: 1、 其中單引號中能夠識別\’,而雙引號中就不能識別\’

 

在這里插入圖片描述

 

2、 雙引號中因為能夠識別$符號,所以雙引號中可以決議變數,而單引號不可以

 

在這里插入圖片描述

 

雙引號中變數識別的規則

1)變數本身系統能夠與后面的內容區分:應該保證變數的獨立性,不要讓系統難以區分

2)使用變數專業識別符號(區分),給變數加上一組大括號{}

 

在這里插入圖片描述

 

結構化定義字串變數的規則

1、 結構化定義字串對應的邊界符有條件:
1.1 上邊界符后面不能跟任何內容;
1.2 下邊界符必須頂格:最左邊;
1.3 下邊界同樣后面只能跟分號,不能跟任何內容;


2、 結構化定義字串的內部(邊界符之間)的所有內容都是字串本身

 

在這里插入圖片描述

 

基本函式strlen()

得到字串的長度(位元組為單位)

中文字串在utf-8一個漢字占3個位元組

 

在這里插入圖片描述

 

多位元組字串的長度問題

包含中文的長度

多位元組字串擴展模塊

mbstring擴展(mb:Multi Bytes)

 

在這里插入圖片描述

 

Mbstring擴展針對的是一些關于字符統計:strlen只是針對標準交換碼ASCII,mtstring會針對不同的字符集

 

在這里插入圖片描述

 

1)轉換函式:implode(), explode(), str_split()

Implode(連接方式,陣列):將陣列中的元素按照某個規則連接成一個字串
Explode(分割字符,目標字串):將字串按照某個格式進行分割,變成陣列
Str_split(字串,字符長度):按照指定長度拆分字串得到陣列

2)截取函式:trim(), ltrim(), rtrim()
Trim(字串[,指定字符]):本身默認是用來去除字串兩邊的空格(中間不行),但是也可以指定要去除的內容,是按照指定的內容回圈去除兩邊有的內容:直到碰到一個不是目標字符為止
Ltrim():去除左邊的
Rtrim():去除右邊的

在這里插入圖片描述

 

3)截取函式:substr(), strstr()
Substr(字串,起始位置從0開始[,長度]):指定位置開始截取字串,可以截取指定長度(不指定到最后)

 

在這里插入圖片描述

 

Strstr(字串,匹配字符):從指定位置開始,截取到最后(可以用來去檔案后綴名)


在這里插入圖片描述

 

4)大小轉換函式:strtolower(), strtoupper(), ucfirst()
Strtolower:全部小寫
Strtoupper:全部大寫
Ucfirst:首字母大寫

在這里插入圖片描述

 

在這里插入圖片描述

 

5)查找函式:strpos(), strrpos()

Strpos(字串,匹配字符):判斷字符在目標字串中出現的位置(首次)
Strrpos(字串,匹配字符):判斷字符在目標字串中最后出現的位置


在這里插入圖片描述

 

6)替換函式:str_replace()
Str_replace(匹配目標,替換的內容,字串本身):將目標字串中部分字串進行替換


在這里插入圖片描述

 

7)格式化函式:printf(), sprintf()
Printf/sprintf(輸出字串有占位符,順序占位內容…):格式化輸出資料


在這里插入圖片描述

 

8)其他:str_repeat(), str_shuffle()
Str_repeat():重復某個字串N次
Str_shuffle():隨機打亂字串


在這里插入圖片描述

 

在PHP中系統提供多種定義陣列的方式

1、 使用array關鍵字:

最常用的 $變數 = array(元素1,元素2,元素3…);

 

在這里插入圖片描述

 

2、 可以使用中括號來包裹資料:

$變數 = [元素1,元素2…];

 

在這里插入圖片描述

 

3、 隱形定義陣列:

給變數增加一個中括號,系統自動變成陣列

$變數[] = 值1; //如果不提供下標也可以,系統自動生成(數字:從0開始)
$變數[下標] = 值; //中括號里面的內容稱之為下標key,該下標可以是字母(單詞)或者數字,與變數命名的規則相似

 

PHP陣列特點
1) 可以整數下標或者字串下標 如果陣列下標都為整數:索引陣列 如果陣列下標都為字串:關聯陣列
2) 不同下標可以混合存在:混合陣列
3) 陣列元素的順序以放入順序為準,跟下標無關
4) 數字下標的自增長特性:從0開始自動增長,如果中間手動出現較大的,那么后面的自增長元素從最大的值+1開始
5) PHP中陣列元素沒有型別限制
6) PHP中陣列元素沒有長度限制

補充:PHP中的陣列是很大的資料,所以存盤位置是堆區,為當前陣列分配一塊連續的記憶體,

 

在這里插入圖片描述

 

特殊下標的轉換

[false]:[1],[true]:[0],[NULL]:[""]

 

在這里插入圖片描述

 

二維陣列

陣列中所有的元素都是一維陣列

 

在這里插入圖片描述

 

多維陣列

在第二維的陣列元素中可以繼續是陣列,在PHP中沒有維度限制(PHP本質并沒有二維陣列)

 

但是,不建議使用超過三維以上的陣列,會增加訪問的復雜度,降低訪問效率, 異形陣列(不規則陣列)


異形陣列

 

陣列中的元素不規則,有普通基本變數也有陣列, 在實際開發中,并不常用,盡量讓陣列元素規則化(便于進行訪問)

 

Foreach遍歷


如果是關聯陣列(字母下標),就需要下標,如果是數字下標就直接訪問值

在這里插入圖片描述

 

獲取下標

 

在這里插入圖片描述

 

在進行資料存盤定義的時候,通常二維陣列不會兩個維度的key下標都為數字,一般是一維為數字(無意義),二維為字串(資料庫表欄位),所以在進行遍歷的時候,通常是只需要針對一維進行遍歷,取得二維陣列元素,然后二維陣列元素通過下標去訪問,

 

在這里插入圖片描述

 

Foreach遍歷的原理

本質是陣列的內部有一顆指標,默認是指向陣列元素的第一個元素,foreach就是利用指標去獲取資料,同時移動指標,

Foreach($arr as $k => $v){ //回圈體 }

1、 foreach會重置指標:讓指標指向第一個元素;
2、 進入foreach回圈:通過指標取得當前第一個元素,然后將下標取出放到對應的下標變數$k中(如果存在),將值取出來放到對應的值變數 $v中;(指標下移)
3、 進入到回圈內部(回圈體),開始執行; 4、 重復2和3,直到在2的時候遇到指標取不到內容(指標指向陣列最后)

For回圈遍歷陣列 For回圈

基于已知邊界條件(起始和結束)然后有條件的變化(規律) 因此:for回圈遍歷陣列有對應條件


1、 獲取陣列長度:count(陣列)得到陣列元素的長度 2、 要求陣列元素的下標是規律的數字


在這里插入圖片描述

 

While配合each和list遍歷陣列 While是在外部定義邊界條件,如果要實作可以和for回圈一樣,

Each函式使用

each能夠從一個陣列中獲取當前陣列指標所指向的元素的下標和值,拿到之后將陣列指標下移,同時將拿到的元素下標和值以一個四個元素的陣列回傳:
0下標 – 》 取得元素的下標值 1下標 - 》 取得元素的值 Key下標 – 》取得元素的下標值 Value下標 – 》取得元素的值
如果each取不到結果(陣列指標移動到最后),回傳false


在這里插入圖片描述

 

List函式使用

list是一種結構,不是一種函式(沒有回傳值),是list提供一堆變數去從一個陣列中取得元素值,然后依次存放到對應的變數當中(批量為變數賦值:值來源于陣列):list必須從索引陣列中去獲取資料,而且必須從0開始,

 

錯誤:


在這里插入圖片描述

 

正確:


在這里插入圖片描述

 

List與each配合特別好

each一定有兩個元素就是0和1下標元素 List(變數1,變數2) =

each(陣列);
是一種賦值運算,但是可以得到false結果(each取不到正確的結果),整個運算式為false

 

在這里插入圖片描述

 

1)排序函式:

對陣列元素進行排序,都是按照ASCII碼進行比較,可以進行英文比較 sort():順序排序(下標重排)

 

rsort():逆序排序

 

在這里插入圖片描述

 

asort():順序排序(下標保留)

arsort():逆序排序
ksort():順序排序:按照鍵名(下標)
krsort():逆序排序
shuffle():隨機打亂陣列元素,陣列下標會重排

 

2)指標函式

 

reset():重置指標,將陣列指標回到首位
end():重置指標,將陣列指標指到最后一個元素

 

在這里插入圖片描述

 

next():指標下移,取得下一個元素的值

prev():指標上移,取得上一個元素的值

 

在這里插入圖片描述

 

current():獲取當前指標對應的元素值

key():獲取當前指標對應的下標值

 

在這里插入圖片描述

 

注意事項:next和prev會移動指標,有可能導致指標移動到最前或者最后(離開陣列),導致陣列不能使用,通過next和prev不能回到真確的指標位置,只能通過end或者reset進行指標重置

 

3)其他函式
count():統計陣列中元素的數量
array_push():往陣列中加入一個元素(陣列后面)
array_pop():從陣列中取出一個元素(陣列后面)
array_shift():從陣列中取出一個元素(陣列前面)
array_unshift():從陣列中加入一個元素(陣列前面)

 

PHP模擬資料結構

 

 堆疊:壓堆疊,先進去后出來(FILO)

在這里插入圖片描述

 

佇列:排隊,先進去的先出去(FIFO)

 

在這里插入圖片描述

 

array_reverse():陣列元素反過來

 

在這里插入圖片描述

 

in_array():判斷一個元素在陣列中是否存在

 

在這里插入圖片描述

 

array_keys():獲取一個陣列的所有下標,回傳一個索引陣列

array_values():獲取一個陣列的所有值,回傳一個索引陣列

 

在這里插入圖片描述

 

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/270615.html

標籤:PHP

上一篇:變著花樣來接參,PHP中接收外部引數的方式

下一篇:2021年春招百度,阿里,美團等大廠全新PHP面試題大匯總(二)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more