梦入琼楼寒有月,行过石树冻无烟

📖 earlier posts 📖

Laravel 介绍

Laravel是一套简洁且优雅的PHP WEB开发框架,正如官网中所说的“Laravel是一个具有表达力、优雅语法的Web应用程序框架“这与国内的Thinkphp框架不同,也许你可以从两者的官网中进行查看和阅读相关文献资料。

安装

apache2

在安装php7之前,我们需要安装apache2的服务器应用环境,来启动本地环境,可使用zypper软件管理包的安装命令进行安装:

zypper install apache2

在安装完成后,读者可使用service来启动apache2服务。

php7

本文作者由于使用opensuse开发环境,所以使用zyyper软件管理包来分别安装php7、php7-mysql、apache2-mod_php7等,读者如果环境支持也可复制下方安装命令进行安装:

zypper install php7 php7-mysql apache2-mod_php7

在php7安装完成之后,我们需要使用a2enmod php7来添加apache2对php7的支持即可,通过在/srv/www/htdocs目录中创建info.php文件中写入:

1
2
3
<?php
phpinfo()
?>

后通过localhost/info.php来访问,如果出现php配置信息则以上步骤操作成功,如出现直接下载info.php文件则需读者自行查找结果。

安装常用模块

在安装完php之后,还需要安装一些php的常用模块,否则将会在后面安装composer时出现一系列的报错和需要修改php.ini文件的操作,实际上修改完了也依然无法安装,所以需要安装以下模块:

php7

zypper install php-phar php7-curl php7-dev php7-gd php7-mbstring php7-zip php7-mysql php7-xml

php7.4

sudo apt install php7.4 libapache2-mod-php7.4 php7.4-bcmath php7.4-json php7.4-mbstring php7.4-xml php7.4-zip

composer

composer是用于PHP管理依赖关系的工具,可以在自己的项目中所依赖的外部工具库,这些操作可以使用compose来安装这些依赖库文件。

安装

composer的安装我们可以通过php进行下载,也可通过使用系统自带的zypper软件管理包进行安装,如:

1
2
3
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

php -r“ copy(’https://getcomposer.org/installer','composer-setup.php');”
php composer-setup.php
php composer-setup.php –filename=composer

在此之后,读者可将composer移至到/bin目录下,这样就可以使用 composer命令进行构建相关项目。

设置国内镜像

在composer安装完成以后,需要设置其国内镜像,以免在项目部署的过程中出现下载缓慢或暂停的情况:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer config -g repo.packagist composer https://mirrors.huaweicloud.com/repository/php/
composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/

如果php和composer都没问题的话,以下两个步骤可以忽略

安装依赖

在使用composer install / composer update命令之前,我们需要在项目当前目录下新建composer.json文件,并写入如下配置:

1
2
3
4
5
{
"require": {
"monolog/monolog": "1.2.*"
}
}
composer install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
localhost:/srv/www/htdocs # composer install
Composer is operating significantly slower than normal because you do not have the PHP curl extension enabled.
No lock file found. Updating dependencies instead of installing from lock file. Use composer update over composer install if you do not have a lock file.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking monolog/monolog (1.2.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Downloading monolog/monolog (1.2.1)
- Installing monolog/monolog (1.2.1): Extracting archive
3 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files

搭建


当一切都安装好了之后,我们可以开启apache2服务,并进入srv/www/htdocs目录下,使用composer构建一个Laravel 6,如果不加以版本限制则会出现一系列的报错问题,最后使得php无法运行Laravel6。

composer create-project laravel/laravel=”6.0” test_webapp

在Arch Linux 环境下,且php version 8 ,则我们可以使用以下命令:

composer create-project –prefer-dist laravel/laravel test_web “6.*”


当composer create-project 命令执行完毕后,会发现当前所在目录下会新建test_webapp目录,此时我们只需要进入该目录,并执行php artisan serve即可运行刚刚下载的laravel项目,之后访问http://127.0.0.1:8000即可访问主页面。

本地化

在 Laravel 中,项目所默认的语言均为英文,因此我们需要将项目的默认语言改为中文,即zh-CN。通常需要使用composer require caouecs/laravel-lang:~3.0来下载语言包,之后更改 config/app.php内的 locale 值为 zh-CN,在通过vendor\caouecs\laravel-lang\src\zh-CN文件复制到resources\lang即可。

PHP 运算符

算数运算符

算数运算符是在PHP之中出现最多从运算符,术语二元运算符,主要对两个变量将进行操作,在PHP之中,主要分为六种基本算数运算符,分别为加(+)、减(-)、乘(*)、除(/)、取模(%)、曲负(-)

加法 (+)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 1;
$b = 3;
$one = $a + $b;
echo "$one";
?>
</body>
</html>
减法 (-)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 1;
$b = 3;
$one = $a - $b;
echo "$one";
?>
</body>
</html>
乘法 (*)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 1;
$b = 3;
$one = $a * $b;
echo "$one";
?>
</body>
</html>
除法 (/)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 1;
$b = 3;
$one = $a / $b;
echo "$one";
?>
</body>
</html>
取模(%)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 1;
$b = 3;
$one = $a % $b;
echo "$one";
?>
</body>
</html>
取负 (-)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 1;
$b = 3;
$one = -$b;
echo "$one";
?>
</body>
</html>

赋值运算符

赋值运算符可被理解为将右边的值赋给左边的变量,如$one = $a+$b,则标识将$a、$b赋值给了$one:

例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 1;
$b = 3;
$one = $a + $b;
echo "$one";
?>
</body>
</html>
同等于加法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 1;
$b = 3;
$one = $a + 10; // 同等与 1 + 10
echo "$one";
?>
</body>
</html>
同等与除法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 1;
$b = 3;
$one = $a / 0.5;
echo "$one";
?>
</body>
</html>

递增/递减运算符

前递增
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = 1;
$three = ++$one;
echo "$three";
?>
</body>
</html>
前递减
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = 1;
$three = --$one;
echo "$three";
?>
</body>
</html>

递增递减运算符表

ID DA FA
++$a $a 前增加1 递增
$a++ $a 后增加1
–$a $a 前递减 递减
$a– $a 后递减

比较运算符

相等 (==)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = 10;
$two = 10;
if ($one == $two) {
echo "\$one相等于\$two";
}
?>
</body>
</html>
不相等于 (!=)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = 10;
$two = 110;
if ($one != $two) {
echo "\$one不相等于\$two";
}
?>
</body>
</html>
ID DA FA
== 等于 等于
=== 完全相等
!= 不等于 不等于
<> 不等于
!== 非全等
< 小于 大于小于
> 小于
>= 大于或等于 小于/大于等于
<= 小于或等于
|| 判断是否取值 取值

逻辑运算符

逻辑运算符于上述不同的是它可以操作布尔类型数据,在PHP中逻辑运算符一共有六种,如下:

与 (and | &&)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 10;
$b = 10;
if ($a == 10 and $b == 10) {
echo "\$a 与 \$b 都为10";
}
?>
</body>
</html>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 10;
$b = 10;
if ($a == 10 && $b == 10) {
echo "\$a 与 \$b 都为10";
}
?>
</body>
</html>
或 (or | xor | || )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 10;
$b = 110;
if ($a == 10 or $b == 1) {
echo "10或1,都能看到";
}
?>
</body>
</html>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 10;
$b = 110;
if ($a == 10 xor $b == 1) {
echo "10或1,都能看到";
}
?>
</body>
</html>

再或者

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 10;
$b = 110;
if ($a == 10 || $b == 1) {
echo "10或1,都能看到";
}
?>
</body>
</html>
非 (!)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = 11;
if ($a !== 10) {
echo "如果\$为10,则不显示";
}
?>
</body>
</html>
ID DA FA
and
&& 与($a 与 $b 都为10)
or 或者
xor 异或(10或1,都能看到)
|| 或(10或1,都能看到)
! 非(如果$为10,则不显示)
as 如同 如同

PHP 常量与预定义常量

在PHP中,常量一般指无法修改的变量或值,而常量一般分为自定义变量和预定义变量两种变量方法。

自定义常量

创建一个常量
1
2
3
<?php
define("常量名", "常量值");
?>
输出一个常量
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
define("常量名", "常量值");
echo 常量名;
?>
</body>
</html>

预定义常量

预定义常量也被称之为“魔术常量”,预定义常量是PHP自带提供的预定义常量,很多是由不同的扩展库定义的,也只有加载了这些库才可以使用预定义常量。虽然PHP提供了大量的预定义常量,但经常使用的也就屈指可数,他们都有一个共同的特点就是“不区分大小写

输出当前所在行号(__LINE__)!
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
define("__LINE__", "常量值");
echo __LINE__;
?>
</body>
</html>
预定义常量
ID DA FA
__LINE__ 输出常量当前所在行号
__FILE__ 输出当前常量所在文件位置

PHP 预定义变量(内部定义变量)与外部变量

预定义变量指PHP内置变量,可供随时进行调用且不需进行初始化。而在预定义变量之中主要分为服务器相关变量系统相关变量PHP自带变量等三种预定义变量支持。

服务器变量 ($_SERVER[“成员变量名”])

PATH
1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
echo $_SERVER["PATH"];
?>
</body>
</html>
ID DA FA
HTTP_HOST 当前url
HTTP_CONNECTION HTTP连接状态
HTTP_UPGRADE_INSECURE_REQUESTS HTTP不安全请求
HTTP_USER_AGENT HTTP用户代理
HTTP_ACCEPT 当前请求头信息
HTTP_ACCEPT_ENCODING HTTP接收编码
HTTP_ACCEPT_LANGUAGE HTTP接收语言
PATH 当前系统路径
SystemRoot 系统根目录
COMSPEC 命令文件位置
PATHEXT 在命令行中可直接运行支持
WINDIR 进程位置
SERVER_SIGNATURE 当前服务器签名
SERVER_SOFTWARE 当前服务器程序信息
SERVER_NAME 服务器名称
SERVER_ADDR 服务器地址
SERVER_PORT 服务器端口
REMOTE_ADDR 正在浏览此界面的IP地址
DOCUMENT_ROOT 服务器文件根
REQUEST_SCHEME 当前请求协议
CONTEXT_PREFIX 上下文前缀
CONTEXT_DOCUMENT_ROOT 当前环境文件根目录
SERVER_ADMIN 服务器管理员
SCRIPT_FILENAME 当前页面文件名及路径
REMOTE_PORT 远程端口
GATEWAY_INTERFACE 网关接口
SERVER PROTOCOL 服务器协议
REQUEST_METHOD 请求方法
QUERY_STRING 查询字符串
REQUEST_URI 请求URL
SCRIPT_NAME 请求文件名

外部变量

在整个开发语言之中,在当前程序内自动产生的变量叫做内部变量。,而HTML之类除php所产生的变量,将会被称之为外部变量。而在开发语言之中,表单可缠上两个变量分别为“GET”和“POST”,“POST”变量用于提交大量的数据,而$_POST变量可以从表单当中接收POST变量,接收方式为“$_POST[‘表单变量名’]”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<form action="" method="post">
编号:&nbsp;<input type="text" name="id"><br>
姓名:&nbsp;<input type="text" name="name">
<input type="submit" name="so" style="width: 100px;" value="查询">
<br>
<hr>
</form>

<form action="" method="get">
性别:&nbsp;<input type="radio" name="sex" value="男">男&nbsp;
<input type="radio" name="sex" value="女">女
<br>
部门:&nbsp;<select name="work">
<option>决策团队</option>
<option>项目团队</option>
<option>技术团队</option>
<option>测试团队</option>
<option>运营团队</option>
</select>
<input type="submit" name="getpost" value="GET提交">
</form>

<?php
if (isset($_POST['so'])) { // 点击查询按钮
$id = $_POST['id']; // 获取ID(编号);
$name = $_POST['name']; // 获取姓名;
echo "接收POST变量: <br>";
echo "编号:".$id."<br>"; // 编号
echo "姓名:".$name."<br>"; // 姓名
}
if (isset($_GET['getpost'])) { // GET 提交按钮
$sex = $_GET['sex']; // 性别
$work = $_GET['work']; // 部门组
echo "<br>接收GET变量:<br>";
echo "性别:".$sex."<br>";
echo "部门:".$work."<br>";
}

// 使用REQUEST,获取外部变量;
echo "<br>接收REQUEST变量:<br>";
echo "编号:".@$_REQUEST['id']."<br>";
echo "姓名:".@$_REQUEST['name']."<br>";
echo "性别:".@$_REQUEST['sex']."<br>";
echo "部门:".@$_REQUEST['work']."<br>";
?>
</body>
</html>

GET变量主要用于小数据量的传递,$_GET变量提交表单后,URL接收GET变量,而接收方式一般为 “$_GET[‘表单变量名’]”。$_REQUEST变量可以取得包括POST\GET\Cookie在内的外部变量。

PHP 变量

变量是指在一个程序过程之中可以被改变的变量,变量的通常作用就是存储数值。通常一个变量可以存储任意数值或字符串数据,而在PHP之中也可以更改变量的类型,如类型转换等。在PHP的开发语言之中,主要分为自定义变量预定义变量两种。

自定义变量

基础
变量的基本格式
1
2
3
<?php
$变量 = "数据"
?>
变量的初始化
1
2
3
<?php
$one = 10;
?>

此时One变量已经被初始化,而初始化值为”10“,通常在PHP开发语言之中使用”=“对变量进行初始化

变量的赋值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = 100;
$two = $one;
echo "$two";
?>
</body>
</html>

将”one”变量赋值给”two“变量,之后输出two变量自然而然的就得出了one变量中的数值。

局部变量
局部变量格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
function my_function() {
// Code
}
my_function(); // 调用局部变量
?>
</body>
</html>
局部变量实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>dmeo</title>
</head>
<body>
<?php
$my_one = "调用外部变量";

// 创建局部变量
function fouction() {
$my_one = "调用局部变量";
print("$my_one");
}
fouction(); // 调用局部变量
echo "<br>";
print("$my_one");
?>
</body>
</html>

局部变量是指这些变量只能通过被动调用来使用,而不像通常变量一样,供其他方法调用。

全局变量
全局变量格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = 100;
function my_function() {
global $one;
}
my_function();
?>
</body>
</html>
全局变量实例 (global)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = 200;
function my_function() {
global $one; // 声明one是一个全局变量
echo "Hello,$one";
}
my_function();
?>
</body>
</html>

全局变量与局部变量的区别就是,局部变量仅仅在某个区域才可使用。而全局变量可以在任何地方进行使用,只需要加上一段方法即可。

变量方法
isset()

isset()主要用于检测变量是否存在,如果变量存在则返回TRUE、否则返回FALSE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = "";
var_dump(isset($one));
echo "<br>";
var_dump(isset($two));
?>
</body>
</html>
empty()

empty()方法主要用于检测变量是否为空,如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = 0;
if (empty($one)) {
echo "该变量为空";
}
?>
</body>
</html>

PHP 数据类型转换

在PHP语言之中,主要存在两种类型转换,分别为隐式类型转换显式类型转换两种,而在通常的编程语言中。主要称隐式类型转换为“自动类型转换”,而显式类型转换主要被称之为“强制类型转换”两种。

自动类型转换(隐式类型转换)

数值+字符串 (字符串)!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = 10;
$two = 'String';
echo $one,$two;
?>
</body>
</html>

此时原本的$one变量是一个整数的,但经过于字符串变量“two”连接,将会被自动转换为字符串类型

字符串+字符串 (整型)!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>data</title>
</head>
<body>
<?php
$one = "1"; // 字符串
$two = "a"; // 字符串
$num = $one + $two;
echo "$num";
?>
</body>
</html>

此时经过隐式类型转换,“1”与“a”相加,输出结果为“1”,将会被自动转换为“整型”

字符串+浮点数(浮点型)!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = "1";
$two = $one + 3.14;
echo "$two";
?>
</body>
</html>

经过字符串与浮点数的相加,最后得出的结果类型将会被自动转换成‘**”整数型”**

强制类型转换(显性类型转换)

整型 (int)
字符串转整型 (int)
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = (int)"hello,world!";
echo "$one";
?>
</body>
</html>
浮点型转整型
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = (int)3.14;
echo "$one";
?>
</body>
</html>
布尔转整型
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = (int)false;
echo "$one";
?>
</body>
</html>
字符串(int)
整型转字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = (string)10;
echo "$one";
?>
</body>
</html>
浮点型转字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = (string)3.14;
echo "$one";
?>
</body>
</html>
浮点型 (float)
整型转浮点型
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = (float)3; // 浮点型结果为 3.00
echo "$one";
?>
</body>
</html>

布尔型(bool,boolean)

变量为布尔型 (bool)!
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = (bool)1; // 经过布尔转换值应为“true”
echo "$one";
?>
</body>
</html>
变量为布尔型 (boolean)
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = (boolean)0; // 经过布尔转换值应为“false”
echo "$one";
?>
</body>
</html>

数组 (extract)

数组转字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$arrayName = array('key1' => 1,'key2' => 2,'key3' => 3);
extract($arrayName);
echo "$key1";
?>
</body>
</html>
ID DA FA
(int),(integer) 转换为整型 整型
(string) 转换为字符串 字符串
(float),(double),(real) 转换为浮点型 浮点型
(bool),(boolean) 转换为布尔 布尔型
(array) 转换为数组 数组
extract 数组转字符串
(object) 转换为对象 对象

PHP 数据类型

整型 (-2147483648~2147483647)

十进制数

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$data = 1;
echo "$data";
?>
</body>
</html>

八进制数[^在八进制中,必须在数字前面加上“0”]

1
2
3
4
<?php
$data = 0123;
echo "$data";
?>

十六进制数[^需在数值前面加上“0x”]

1
2
3
4
<?php 
$data = 0x1B;
echo "$data";
?>

1
2
3
4
<?php
$data = 0;
echo "$data";
?>

负数

1
2
3
4
<?php
$data = -50;
echo "$data";
?>

浮点型

普通浮点型

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$data = 3.14;
echo "$data";
?>
</body>
</html>

精度 (3.3e4)

1
2
3
4
<?php
$two = 3.3e4;
echo "$two";
?>

最大精度 (1.8e308)!

1
2
3
4
<?php
$three = 1.8e308;
echo "$three";
?>

字符串(”String”)

输出单个字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$one = "Hello,";
echo "$one";
?>
</body>
</html>

组合字符串

1
2
3
4
5
6
<?php
$one = "Hello,";
$two = "World";
echo "$one
$two";
?>

字符串特殊字符输出

ID DA
\n 换行
\r 回车
\t tap
\\ 反斜线
\$ 美元符号
\“ 双引号

输出单引号

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
echo '吾有一\'单引号';
?>
</body>
</html>

输出\

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
echo '吾有一\\';
?>
</body>
</html>

如果使用“\‘转义其他字符,则“\”也会显示,使用双引号和单引号的主要区别是。单引号定义的字符串中出现的变量和转义序列不会被变量值替代;而双引号中使用的变量名在显示变量的值。

布尔型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>data</title>
</head>
<body>
<?php
$a = true;
$b = false;
echo "$a";
?>
</body>
</html>

True

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>data</title>
</head>
<body>
<?php
$a = true;
echo "$a";
?>
</body>
</html>

False

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>data</title>
</head>
<body>
<?php
$a = false;
echo "$a";
?>
</body>
</html>

布尔型主要有两个值,分别为“false” and “false”,在PHP中,这两个值是没有大小写限制的,可以使用“TRUE” and “FALSE” or “true” and “false”两种写法,本文使用小写。

数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$arrayName = array("key1" => "Hello", "key2" => "World");
$one = (array)$arrayName;
echo "$one";
?>
</body>
</html>

数值

One (0,1,2)

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>data</title>
</head>
<body>
<?php
$one = array(0,1,2);
s var_dump($one);
?>
</body>
</html>

Two (0 > 0, 1 > 1)

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>data</title>
</head>
<body>
<?php
$two = array("One" > "one","Two" > "two","Three" > "three");
var_dump($two);
?>
</body>
</html>

数组可以在变量中存储多个值,使用var_dump方法可以返回数据的类型和值

类与对象

定义类

1
2
3
4
5
<?php
class one {
// class code
}
?>

定义对象

1
2
3
4
5
6
<?php
class one {
// 对象 = 关键词 对象();
$data = new data(); // 初始化
}
?>

调取对象数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>data</title>
</head>
<body>
<?php
class person {
function one() {
echo "Hello,world!";
}
}
$person = new person();
$person -> one();
?>
</body>
</html>
ID DA FA
/ 转义
new 初始化对象
class 定义类
function 新建对象功能

PHP 输出

输出格式

echo ()

1
2
3
<?php
echo ("Hello,world");
?>

echo

1
2
3
<?php
echo "Hello,world"
?>

print()

1
2
3
<?php
print ("Hello,world");
?>
1
2
3
<?php
print "Hello,world"
?>

输出

输出 Hello,world

php与前端语言大多数一样,都拥有起始语句和结束语句,不同的在于php的起始语句是 <

?pho ,而结束语句是 ?>,而php是经过浏览器编译的,与源代码不同,编译过后的源代码为

1
2
3
<?php
echo "<h1>Hello,word!</h1>";
?>

输出时间

1
2
3
<?php 
echo date("Y-m-d H:i:s");
?>
ID DA
Y
m
d
H
i
s

嵌入输出

输出HTML代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
echo "<h1>Hello,world!";
print("<br>");
echo "<font size='3'>字体大小</font>"
?>
</body>
</html>

嵌入JavaScript代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
echo "<script>";
echo "alert('调用JavaScript code')";
echo "</script>";
?>
</body>
</html>

PHP与JavaCript+Html互相嵌入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
$a = "请输入正确的账号";
?>
<form name="forml">
<input type="text" name="ti" size="10" style="width: 40%">
<input type="button" name="bo" value="开始" onclick="ti.value='<?php echo $a;?>'">
</form>
</body>
</html>
ID DA FA
echo (“N”) 输出 echo
echo “N”
print (“N”) 输出 print
print “N” 输出
date() 输出时间

PHP 读取数据库数据

PHP 读取数据库方法有很多,本文仅列举最方便的面向过程方法,使用MySQLi_connect函数,进行数据库读取。在MySQL部分。我们仅仅涉及连接、插入、读取等三个方面,当掌握这三种方式,则可深度学习其他进阶操作,无论
MySQL + PHP 的项目需求多么的复杂,都离不开这三种功能。

新建数据库表

新建数据表


1
2
3
4
5
6
CREATE TABLE user
(
id int(20),
name varchar(20),
age int(20)
);

插入表数据

1
INSERT INTO user(id,name,age) values('1','sun','12');

MySQLi_connecta

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
// 连接数据库
$server = '127.0.0.1:3306';
$username = 'sun';
$password = '7e63de77';
$database_mysql = 'mksql';

$sqlconn = mysqli_connect($server,$username,$password,$database_mysql);
if (!$sqlconn) {
echo "数据库连接失败";
}

// 查询数据库
$sqlcomm = "SELECT id,name,age FROM user";
$res = mysqli_query($sqlconn,$sqlcomm);
// 输出数据库
if (mysqli_num_rows($res)>0) {
while ($row = mysqli_fetch_assoc($res)) {
echo "当前用户ID:".$row["id"]." -用户名称:".$row["name"]."用户注册年限:".$row["age"];
}
} else {
echo "当前数据表中暂无数据";
}
// 关闭数据库流
mysqli_close($sqlconn);
?>
</body>
</html>

PHP 创建数据库

根据上一章节“PHP连接数据风格”来看,PHP主要分为面向过程风格和面向对象风格两种风格来连接数据库,通常主要列举三种函数,分别为MySQLi、MySQLi_connect、PDO三种函数,但本书仅使用MySQLi、MySQLi_connect两种格式和函数进行演示,对PDO深有兴趣的读者,还请自行进行研究和学习。

对数据库帐号进行权限设置

对数据库帐号权限设置的前提是PHP需要对MySQL执行下写入、修改、删除的权限。如当前数据库连接帐号权限不够完成操作时则会报错为**ERROR 1044 (42000): Access denied for user ‘sun‘@’localhost’ to database ‘password’**,为避免出现此问题所以按照本书流程进行操作

查询当前数据库所有用户

1
select distinct user from mysql.user;

或使用:

1
2
use mysql;                #进入mysql库
select * from user; # 查看所有用户

分配帐号权限

分配所有权限给用户

基本格式
1
GRANT 权限 on 库.表 to '用户'@'localhost';
授权用户
1
grant all on *.* to 'user'@'localhost';            # 将所有MySQL权限和库访问及操作权限授权给sun

创建数据库

面向对象

MySQLi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
// 连接数据库
$server = '127.0.0.1:3306';
$username = "sun";
$password = "7e63de77";

$mkmysql = new mysqli($server,$username,$password);
if ($mkmysql -> connect_error) {
echo "连接失败";
}

// 创建数据库
$sqlcommand = "CREATE DATABASE password";
if ($mkmysql -> query($sqlcommand) === TRUE) {
echo $sqlcommand,"数据库创建成功";
} else {
echo "数据库创建失败";
}
// 关闭数据库连接流
$mkmysql -> close();
?>
</body>
</html>

面向过程

MySQLi_connect

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demos</title>
</head>
<body>
<?php
// 连接数据库
$server = '127.0.0.1:3306';
$username = "sun";
$password = "7e63de77";

$mkmysql = mysqli_connect($server,$username,$password);
if (!$mkmysql) {
echo "数据库连接失败";
}

// 创建数据库
$sqlcommand = "CREATE DATABASE world";
if (mysqli_query($mkmysql,$sqlcommand)) {
echo "数据库创建成功";
echo "数据库命令为: ",$sqlcommand;
} else {
echo "数据库创建失败";
}

// 关闭数据库流
$mkmysql -> close();
?>
</body>
</html>
📖 more posts 📖