小符的PHP笔记

PHP基础

PHP的数据问题:

1.PHP变量名之前要加$标识
2.PHP使用=给变量赋值
3.PHP不允许直接访问一个未经初始化的变量
4.PHP是一种弱类型语言,声明变量常量时不需要声明数据类型

PHP数据类型

*标量数据类型:

1.布尔型

布尔型的值要么为FALSE,要么为TRUE,(此处不区分大小写)

<?php
$a=true;
$b=false;
echo $a;
echo "<br/>";
echo $b;
?>

使用echo输出true时,true被自动的类型转化为整数1;使用echo输出false时,false被自动类型转化为空字符串

2.整型

整型数据是指不包含小数点的数,可以为十进制,八进制,十六进制,且可以加+ -号
为区别进制数,八进制前加上0,十进制前加上0x

<?php
$a =1234;
$b =-123;
$c =0123;//八进制,相当于83
$d =0x1A;//十六进制,相当于26
echo $a;
echo "<br/>";
echo $b;
echo "<br/>";
echo $c;
echo "<br/>"
echo $d;
?>
3.浮点型
<?php
$a =1.0;
$b=3.1415;
$c=1.2E2;
echo $a;
echo "<br/>";
echo $b;
echo "<br/>";
echo $c;
?>

浮点数只是一个近似值,尽量避免浮点数之间比较大小,否则会导致结果不准确

4.字符串型

PHP中没有对字符串的最大长度尽行严格的规定

<?php
$string1='string1';
$string2="string2";
$string3='string3$string1'
$string4="string4$string1"
echo $string1;
echo "<br/>";
echo $string2;
echo "<br/>";
echo $string3;
echo "<br/>";
echo $string4;
?>

使用双引号指定的字符串中出现变量名,变量名会被替换成相应的变量值;使用单引号则不会

*复合数据类型:

1数组

1.PHP数组中各元素的键既可以是整数,又可以是浮点数,还可以是字符串
2.PHP数组中的各元素不必须为相同类型的数据,可以既是标量数据类型数据,也可以是复合数据类型数据
3.PHP数组是动态的,在定义时不必指出数组长度

<?php
$words=array("PI"=>3.14,0,"database"=>"mysql");
$words[1]=1;
echo $words["PI"];//输出3.14cv 
echo "<br/>";
echo $words["database"];//输出mysql
?>
2.对象

类与对象

<?php
class student{
//下面是student类的成员变量
public $name;
public $sex;
public $birthday;
//下面是student类的成员方法
function getname(){
//this指向当前对象
    return $this->name;
}
fuction setname($name){
    $this->name=$name;
}
}
$student=new student();
$student->setname("张三");//输出张三
echo $student->getname();
?>

通过关键字new实例化一个$ student对象
访问成员变量的方法:对象->成员变量($ student->name)
访问成员方法的方法:对象->成员方法($ student->getname)

3.特殊数据类型
1.资源数据类型:

是PHP的一种特殊的的数据类型,用于表示一个PHP的外部资源,就像一个数据库的连接或者一个数据流等

<?php
//使用mysql——connect()函数建立一个与MySQL数据库连接时,需要指定数据库服务器的主机名(或IP地址),用户名(如root),密码(如“”)
$connection=mysql_connect("localhost","root","");
//使用fopen函数以“r”读的方式打开“student.class.php”文件
$iostream=fopen("student.class.php","r");
//使用varchar函数输出函数中参数的数据类型
var_dump($connection);
//输出resource(3,mysql,link)
echo "<br/>";
var_dump($iostream);
//输出resource(5,stream)
?>

在PHP函数中,var_dump函数的作用是输出函数参数的数据类型
如果忘记释放资源,PHP垃圾回收机制将在PHP程序执行完毕之后自动回收资源,以避免资源浪费

2.空(null)

null是一个特殊的数据类型,该数据类型只有一个null值,用来表示一个不确定或不存在的数据,null不区分大小写

<?php
$a =null;
$b =null;
var_dump($a);
echo "<br/>";
var_dump($b);
?>
4.伪类型

伪类型不可作为变量的数据类型,使用伪类型主要是为了确保函数的易读性

1.mixed:

说明函数可接受或返回不同类型的数据(并不是所有类型的数据)

2.number:

说明函数可接受或返回整型或浮点型数据

3.void:

说明函数没有参数或返回值

4.callback:

说明函数可接受用户自定义的函数作为一个参数 例如:
call_user_function()或usort()函数

浏览器端的数据采集

主要是通过HTML的form表单实现

<form action ="register.php">
//表示点击form表单的提交后,表单数据提交给register.php处理
用 户 名:<input type="text"name="username"/><br/>&nbsp;&nbsp;&nbsp;码:<input type="password"name="password"/><br/>
确认密码:<input type="password"name="confimpassword"/><br/>
<input type"submit" value="提交"/>
<input type"reset" value="重提"/>
</form>

1.HTML中的&nbsp被浏览器解析为一个空格
2.*input标记定义了可以输入信息的区域,input标记必须定义type属性,type属性可以是text(文本框)button(按钮)checkbox(复选框)file(文件)hidden(隐藏字段)image(图像)password(密码框)radio(单选按钮)reset(重置按钮)submit(提交按钮),指定属性时要用“” ‘’指定
*input 用value赋予初始值
*当input的属性为submit时,该元素会在浏览器中渲染出一个按钮,点击按钮,填好的数据就会传到action属性定义的表单处理程序进行处理
*当input标记的type的属性值为reset时,该元素会在浏览器中渲染出一个重置按钮,单击重置按钮后,填好的表单将被设置成value属性初始值

PHP程序的数据采集

<?
$username =$_GET["username"];
$password =$_GET["password"];
$confirmpassword =$get["confirmpassword"];
//以下代码输出$username变量,$password变量,$confirmpasssword变量的值,并输出换行符
echo $username;
echo "<br/>";
echo $password;
echo "<br/>";
echo $confirmpasssword;
?>

由于register.html没有定义method属性值,因此表单数据将以get的方式提交给register.php程序,接着register.php程序使用$get采集表单中对应元素的值,并打印输出在register.php页面上

PHP数据处理

1.判断passsword和confirmpassword是否一致,若一致,提醒用户可以注册,否则提示用户密码与确认密码不一致
2.若password与confirmpassword值一致,将password加密

<?php
$username =$_get["username"];
$password =$_get["password"];
$confirmpassword =$_get["confirmpassword"];
if($password==$confirmpasssword){
    echo"你可以注册了";
    echo "<br/>";
    echo "您加密后的密码为:";
    echo md5($password);
}
else{
    echo "您输入的密码与确认密码不一致,请重新注册!"}
?>

md5()函数的功能是将传递到md5()函数的字符串str转化为32位密文,从而实现加密功能。其格式为string md5(string str)

PHP数据的输出

PHP常使用echo语句向浏览器输出字符串数据,除了echo外还可使用print或printf()函数像浏览器输出字符串数据,echo和print输出的是没有经过格式化的字符串,而printf()输出的是经过格式化的字符。对于复合数据类型的数据(数组或对象),可选择print_r()输出

1.print和echo:

<?php
$username = $_get["username"];
$password = $_get["password"];
$confirmpasssword = $_get["confirmpassword"];
if($psssword==$confirmpasssword){
    print "您可以注册了!";
    print "<br/>";
    print "您加密后的密码为:";
    print md5 ($password);
}
else{
    print "您输入的密码与确认的密码不一致,请重新注册!";
}
?>

echo可以同时输出多个字符(多个字符串之间用逗号隔开即可),print一次只可输出一个字符串

<?php
$username = $_get["username"];
$password = $_get["password"];
$comfrimpassword = $_get["confirmpassword"];
if ($password==$confirmpasssword){
    echo "您可以注册了", "<br/>","您加密后的密码为:",md5 ($password)
}
else{
    echo "你的密码与确认密码不一致,请重新注册!";
}
?>

两者的其他区别:
1.在echo前不可使用错误抑制运算符@
2.print()可看作一个有返回值的函数,此时print可作为表达式的一部分,而echo不能

2.输出运算符<?= ?>:

如果在HTML语句中只嵌入一条PHP语气,且该PHP语句是一条输出语句,此时若使用echo,print语句,较为麻烦,故此时会使用输出运算符<?= ?>输出字符数据

<html>
<head>
<title>
php代码和HTML代码混编实例程序
</title>
</head>
<body bgcolor='<?= "red"?>'>
<?
echo "hello world!";
echo "<br/>";
echo date("y-m-d h:i:s");
?>
</body>
</html>

只有将php.ini文件中的short_open_tag选项设置为on时,输出运算符<?= ?>才会生效

print_r函数:

经常在复合型数据输出时用到此函数
使用规则:键=>值 对或 成员变量名=>值 的方式输出元素或对象的内容

<?php
class person{
    public $name="张三";
    public $sex="男";
    public $age=20;
    function say(){
        echo "这个人在说话";
    }
    function walk(){
        echo "这个人在走路";
    } 
}
$person = new person)()
print_r($person)
//输出:person object([name]=>张三 [sex]=>男 [age]=>20)
echo "<br/>";
$words =array("browser","application","database");
print_r($words);
//输出array([0]=> "browser", "application", "database");
?>

编码规范

书写规范

1.缩进:

每个缩进规范是一个Tab(制符表),语块中第一条语句需要缩进,同一个语块中所有PHP语句上下对齐

2.大括号:

左大括号与关键词同行(if ,else ,for ,while ,switch等);右大括号与关键词同列

<?php
if ($condition){
    switch ($var){
        case 1:
        echo 'var is 1';
        break;
        case 2:
        echo 'var is 2';
        break;
        default:
        echo 'var is neither 1 or 2';
        break;
    }
}
else {
    switch ($str){
        case 'abc':
        $result ='abc';
        break;
        default:
        $result ='unknow';
        break;
    }
}
?>

3.运算符:

每个运算符与两边参与运算的值或表达式中间要有一个空格
但字符串连接的运算符号两边不加空格

<?php
$b = 2;
$c = 3;
$a = $b + $c;
?>

命名规则

1.类:

类名每一个单词首字母大写 如类名StudentCourse

class StudentCourse{
}
2.常量:

常量名所有字母大写,单词间用下划线分隔,如NULL, TRUE, FALSE, ROOT_PATH, PI

<? php
define ("PI",3.1415);
//定义常量时,需使用define函数
?>
3.变量:

要求在同一个系统中,变量命名规则必须统一(大小写)

4.数组:

数组可以储存多个变量,因此数组名一般使用为单词的复数形式 $words

5.函数:

与变量命名规范相同,通常函数都是执行一个动作,所以函数名中往往包含动词,如getName,setName为取得name值和设置name值

function getName(){
    return $this->name;
}
6.数据库命名:

数据库数据表与变量命名规则相同user_id, student_name

7.类文件:

php类文件命名时通常以class.php为后缀,文件名与类名相同,如Student.class.php

PHP表达式

常量

自定义常量

自定义常量使用之前必须定义,PHP的define()函数专门用于定义自定义常量
语法:define(name,value[,boolean case_insensitive])
功能:定义一个名字为name,值为value的常量,case_insensitive参数的默认值为FALSE,表示常量名的name不用区分大小写
常量名name为字符串类型数据,常量型value必须是标量数据类型数据
函数的语法格式中的某个参数使用[ ]括起来,表示该参数为可选参数(不是必须的),函数中可选参数都会有一个默认值,在函数调用中,如果不给可选参数传递值,那么将默认值传给可选参数

<?php
define("database","student");
//区分大小写
define("user_name","root",FALSE);
//区分大小写
define("password","root",TRUE);
//不区分大小写
echo database;
echo "<br/>";
echo user_name;
echo "<br/>";
echo password;
?>

1.常量必须使用define()函数定义,且常量名前面不加前缀$
2.变量名可由字母或下划线开头,后面跟上任意数量的字母,数字,下划线
3.变量名一般习惯是全部大写
4.变量的作用域是全局的,不存在使用范围的问题,一旦被定义,其值不能在程序运行过程中修改,也不能被销毁

常量的内存分配

在内存中专门为常量分配了一个空间–常量储存区,位于该储存空间的常量是全局的,且程序运行期间不可修改或销毁

预定义常量

这些预定义常量无需用define函数定义,可直接在程序中使用
1._ FILE _:当前正在处理的脚本文件名,若使用在一个被引用的文件中(include或require) ,那么它的值就是被引用的那个文件,而不是引用它的文件
2. _ LINE _:正在处理的脚本文件的当前行数
3. PHP_VERSION:当前PHP预处理器的版本
4. PHP_OS:PHP所在的操作系统的类型
5. TRUE:表示逻辑真 FALSE:表示逻辑假 NULL:表示没有值或不确定
6.DIRECTORY_SEPARATOR:表示目录分隔符,UNIX,LINUX操作系统环境下的值为 / ,WINDOWS操作系统下的值为 \

<?php
echo __FILE__;
echo "<br/>";
echo __LINE__;
echo "<br/>";
echo PHP_VERSION;
echo "<br/>";
echo PHP_OS;
echo "<br/>";
echo DIRECTORY_SEPARATOR;
?>

变量

变量的基本概念

变量是临时储存数据的容器,这些数据可以是任意一种数据类型的数据:
1.变量名必须以美元符号($)开头
2.变量名的开头第一个字符必须是以字母或下划线(不能是数字),变量名称可以为字母,数字,下划线的组合
3.变量名是区分大小写的

<?php
//以下语句修改了$username变量的值
$username = "张三";
$username = "李四";
//以下语句修改了$sex变量的值,又改变了他的数据类型
$sex = FALSE;
$sex = "男";
?>

变量的内存分配

内存中存在一段栈空间用于储存变量,栈是一种数据结构,是一种只能在某一端插入和删除的特殊线性表,栈按照后进先出的的原则先进后出,先进入的数据在栈底,最后的数据在栈顶,栈底固定,而栈顶浮动
插入一个元素的过程称为入栈(PUSH),删除一个元素的过程称为出栈(POP)

变量的赋值方式

1.传值赋值方式:

传值赋值的方式将一个值的“拷贝”赋值给某个变量

<?php
$age1 = 18;
//以下语句进行传值赋值,变量$agel的值18赋值给变量$age2
$age2 = $age1;
//以下语句修改变量$age2的值,此时变量$age2在内存中开辟新的储存空间储存值20
$age = 20;
echo $age1;
//该语句输出18
echo "<br/>";
echo $age2;
//该语句输出20
?>
2.传值的赋值方式:&

传地址值是将源变量的内存地址赋值给新的变量,即新的变量引用了源变量的值,改动新变量的值影响到源变量的值,反之亦然,传地址赋值意味两个变量都指向了同一个数据,不存在任何数据的拷贝过程

<?php
$age1 = 18;
$age2 = &$age1;
$age2 = 20;
echo $age1;
//输出值为20
echo "<br/>";
echo $age2;
//输出值为20
?>

可变变量

可变变量允许PHP程序动态的改变一个变量的变量名,可变变量的工作原理是用一个值作为另一个变量的名

<?php
$varname = "age";
//用$$varname取代$age,下面的代码等价于$age = 20
$$varname = 20;
echo $age;
//输出值为20
?>

有关变量或常量状态的函数

数据类型查看函数:

1.gettype()函数

string gettype ( mixed var )
gettype()函数需要变量名(带$符号)或常量名作为参数,该函数返回变量或常量的数据类型:integer, double, string, array, object, unknown type(未知数据类型)

2.var_dump()函数

void var_dump(mixed var)
var_dump()函数需要变量名(带$符号)或常量名作为参数,该函数返回变量或常量的数据类型以及对应的值,并将这些信息输出
void表示函数没有返回值,调试程序时,经常使用var_dump()函数查看变量或常量的值,数据类型等信息

<?php
define("username","root");
$score = 67.0;
$age = 20;
$words = array(2,4,6,8,10);
echo gettype(username);
//输出string
echo "<br/>";
echo gettype($score);
//输出 double
echo "<br/>";
echo gettype($words);
//输出array
echo "<br/>";
var_dump(username);
//输出 string 'root' (length=4)
echo "<br/>";
var_dump($score);
//输出 float 67
echo "<br/>";
var_dump($age);
//输出 int 20
echo "<br/>";
var_dump($words);
//输出 array(size=5) {0=>int(2) 1=>int(4) 2=>int(6) 3=>int(8) 4=>int(10)}
?>

在调用函数时,函数名不用区分大小写

检查常量或变量是否定义函数

1.define()函数:

bool defined (string name)
检查函数是否经过define()函数定义,该函数参数为常量名(注意常量名必须带单双引号),若经过define()函数定义,该函数返回布尔值TRUE,若不经过define()函数定义,则返回布尔值FALSE

<?php
define("usename","root");
if(defined("username")){
    echo "username经过了define函数的定义"}
echo "<br/>";
?>
2.issert()函数:

bool issert (mixed var)
检查变量var是否定义,该函数参数为变量名(带$号),如果变量已定义,该函数返回布尔值TRUE,否则返回布尔值FALSE

<?php
$age = 20;
if(isset($age)){
    echo '变量$age已定义<br/>';
}
else{
    echo '变量$age未定义<br/>';
}
if(isset($name)){
    echo '变量$name未定义<br/>';
}
else{
    echo '变量$name未定义<br/>';
}
?>

注意单双引号的区别,如果使用双引号,PHP预处理器会将$age已定义 作为变量名
issert()函数只可判断变量是否定义,传递其他函数都将造成程序解析的错误,程序解析一旦错误,程序立即终止脚本进行 define()函数只能用于判断常量是否定义,传递其他参数返回值将永远为FALSE

取消变量定义unset()函数:

void unset ( mixed var )
此函数取消变量var的定义,该函数的参数名为变量名,函数没有返回值

<?php
$age = 18;
$age2 = &$age1;
$age2 = 20;
echo $age1;
echo "<br/>";
unset ($age1);
echo $age1;
//该函数没有被定义因此会输出notice信息
echo '<br/>';
echo $age2;
?>

检查变量是否为空

1.is_null()函数:

boolean is_null( mixed var )
检查变量var是否为NULL,如果值为NULL则返回TRUE否则返回FALSE
is_null()函数用于判断变量是否为NULL时,可看作isset()函数的反函数
若变量未经定义、变量的值赋为NULL、变量经unset()函数处理过,均返回TRUE

<?php
var_dump(is_null($a));
echo "<br/>";
$b=NULL;
var_dump(is_null($b));
echo "<br/>";
$c = FALSE;
var_dump(is_null($c));
echo "<br/>";
unset($c);
var_dump(is_null($c));
?>
2.empty()函数:

boolean empty ( mixed var )
用于检测变量var是否为空,该函数参数var为变量名,若var为空,则empty()函数返回为TRUE,否则返回为FALSE
空的含义为:空字符串,字符串0,浮点数0.0,NULL,

PHP与MySQL的联系

连接MySQL:

<?php
$dbhost = 'localhost';
//MySQL服务器主机地址
$dbuser = 'root';
//MySQL用户名
$dbpass = '123456';
//MySQL用户名密码
$conn = mysqli_connect($dbhost,$dbuser,$dbpass);
if(! $conn)
{
    die('could not connect:'. mysqli_error());
}
echo '数据库连接成功!';
mysqli_close($conn);
?>

创建数据库:

<?php
$dbhost = 'localhost';
//mysql服务器主机地址
$dbuser = 'root';
//mysql用户名
$dbpass = '123456';
//mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
    die('连接错误!'. mysqli_error($conn))
}
echo '连接成功<br/>';
$sql = 'CREATE DATABASE xiaofu';
$retval = mysqli_query($conn,$sql);
if(! $retval)
{
    die('创建数据库失败!'.mysqli_error($conn));
}
echo "数据库xiaofu创建成功!\n";
mysqli_close($conn);
?>

删除数据库:

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '123456';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if (! $conn)
{
    die ('连接失败!'.mysqli_error($conn));
}
echo '连接成功! <br/>';
$sql = 'DROP DATABASE xiaofu';
$retval = mysqli_query($conn, $sql);
if(! $retval)
{
die('删除数据库失败!'.mysqli_error($conn));
}
echo "数据库xiaofu删除成功\n";
mysqli_close($conn);
?>

选择数据库:

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpasss = '123456';
$conn = mysqli_connect($dbhost,$dbuser,$dbpass);
if(! $conn){
    die ('连接失败!'.mysqli_error($conn));
}
echo '连接成功!';
mysqli_select_db($conn 'xiaofu');
mysqli_close($conn);
?>

创建数据表:

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '123456';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
    die('连接失败!'. mysqli_error($conn));
}
echo '连接成功!<br/>';
$sql = "create table bufu("
    "bufu_id int not null auto_incrment,"
    "bufu_title varchar(100) not null,"
    "bufu_author varchar(40) not null,"
    "submission_date date,"
    "primary key (bufu_id) engine=innodb default charset=utf8;";
mysqli_select_db($conn, $sql);
$retval = mysqli_query($conn, $sql);
if(! $retval)
{
    die('创建数据表失败!'. mysqli_error($conn));
}
echo "数据表创建成功!\n";
mysqli_close($conn);
?>

删除数据表:

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '123456';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
    die ('连接失败!'. mysqli_error($conn));
}
echo "连接成功!<br/>";
$sql = "drop table bufu";
mysqli_select_db($conn,'xiaofu');
$retval = mysqli_query($conn, $sql);
if(! $retval){
    die('数据表删除失败!'.mysqli_error($conn));
}
echo "数据表删除成功!\n";
mysqli_close($conn);
?>

插入数据:

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '123456';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
    die ('连接失败!'. mysqli_error($conn));
}
echo "连接成功!<br/>";
mysqli_query($conn , "set names utf8");
$bufu_title = '学习python';
$bufu_author = '小符是天才'$submission_date = '2002-05-24';
$sql = "insert into bufu".
" (bufu_title,bufu_author,submission_date)"
"values"
"('$bufu_title','$bufu_author','$submission_date')";
mysqli_select_db( $conn, 'xiaofu');
$retval = mysqli_query($conn,$sql);
if(! $retval)
{
    die('无法插入数据!'. mysqli_error($conn));
}
echo '数据插入成功!\n';
mnysqli_close($conn);
?>

查询数据:

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '123456';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
    die ('连接失败!'. mysqli_error($conn));
}
echo "连接成功!<br/>";
mysqli_query($conn,"set name utf8");
$sql = 'select bufu_id,bufu_title,
bufu_author,submission_date
from bufu';
mysqli_select_db($conn 'xiaofu');
$retval = mysqli_query($conn, $sql);
if(! $retval)
{
    die("无法读取数据!". mysqli_error($conn));
}
echo '<h2>小符小符mysqli_fetch_array 谁也不服</h2>';
echo '<table border= "1"><tr><td>ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval,mysql_assoc))
{
    echo "<tr><td> {$row['bufu_id']}</td> ".
    "<td>{$row['bufu_title']} </td> ".
    "<td>{$row['bufu_author']} </td> ".
    "<td>{$row['bufu_date']} </td> ".
    "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值