一、知识点简介
(一) WEB 服务的三大组件
1,phpstudy是一个应用程序; 2,Apache服务器:操控php文件; 3,Mysql:数据库;
(二) PHP 环境介绍
集成环境安装
(一) WampServer:是一款由法国人开发的 Apache
Web 服务器、PHP 解释器以及 MySQL 数据库的
整合软件包。
(二) WampServer 就是 Windows Apache Mysql PHP
集成安装环境,即在 window 下的 apache、php
和 mysql 的服务器软件。
(三) PHP 基础语法
一,PHP标记(定界符)
1.当解析一个文件时,PHP 会寻找起始和结束标记,也就是
<?php 和?>,这告诉 PHP 开始和停止解析二者之间的代码。
此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去,
而任何起始和结束标记之外的部分都会被 PHP 解析器忽略
2. 如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结
束标记。这可以避免在 PHP 结束标记之后万一意外加入了
空格或者换行符,会导致 PHP 开始输出这些空白,而脚本
中此时无输出的意图。
3. <?php
echo "Hello world";
// 更多代码
echo "Last statement";
// 脚本至此结束,并无 PHP 结束标记
4. 设置字符集:
header(“content-type:text/html;charset=utf-8”);
(三) 指令分隔符
1. 同 C 或 Perl 一样,PHP 需要在每个语句后用分号结束指
令。一段 PHP 代码中的结束标记隐含表示了一个分号;在
一个 PHP 代码段中的最后一行可以不用分号结束。如果后
面还有新行,则代码段的结束标记包含了行结束。
<?php
echo "This is a test";
?>
<?php echo "This is a test" ?>
<?php echo 'We omitted the last closing tag';
(四) 注释
1. //单行注释
/*多行注释、块注释、段落注释 */
#单行注释
2. PHP 支持 C,C++ 和 Unix Shell 风格(Perl 风格)的注释。
(四) PHP 三大结构(顺序、选择、循环)
1. If
1) <?php
if ($a > $b) {
echo "a 比 b 大。";
} elseif ($a == $b) {
echo "a 等于 b。";
} else {
echo "a 比 b 小。";
}
?>
2. Switch
3. 流程控制的替代语法(扩展)
1) PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和
switch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及
endswitch;。
2) <?php if ($a == 5): ?>
A 等于 5。
<?php endif; ?>
3) <?php
if ($a == 5):
echo " A 等于 5";
echo "...";
elseif ($a == 6):
echo " A 等于 6";
echo "!!!";
else:
echo "a 既不是 5,也不是 6。";
endif;
?>
4. While
5. Do-while
6. For
7. Break
8. continue
php表单(get post request)
(一) $_GET 通过 URL 参数传递给当前脚本的变量的数组。
(一) $_GET 通过 URL 参数传递给当前脚本的变量的数组。
1. <?php
echo 'Hello ' . htmlspecialchars($_GET["name"]) . '!';
?>
假设用户访问的是 http://example.com/?name=Hannes
输出类似于:
Hello Hannes!
(二) $_POST : 当 HTTP POST 请求的 Content-type 是
application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联
数组形式传入当前脚本。
1. <?php
echo 'Hello ' . htmlspecialchars($_POST["name"])
. '!';
?>
假设用户通过 HTTP POST 方式传递了参数 name=Hannes
输出类似于: Hello Hannes!
(三) $_REQUEST : 默认情况下包含了$_GET,$_POST和$_COOKIE的数组。
(四) 扩展:htmlspecialchars :将特殊字符转换为 HTML 实体
(五) PHP 中的数组
三、 php 数组,数组转换成 json
(一) PHP 中的数组实际上是一个有序映射。映射是一种把 values
关联到 keys 的类型。此类型在很多方面做了优化,因此可以
把它当成真正的数组,或列表(向量),散列表(是映射的一
种实现),字典,集合,栈,队列以及更多可能性。由于数组
元素的值也可以是另一个数组,树形结构和多维数组也是允许
的。
(二) 定义数组 array()
1. 可以用 array()函数来新建一个数组。它接受任意数量用逗
号分隔的键(key)=>值(value)对。
array(key=>value,……)
键(key)可以是一个整数 integer 或字符串 string
值(value)可以是任意类型的值
注:最后一个数组单元之后的逗号可以省略。通常用于单
行数组定义中,例如常用 array(1,2)而不是 array(1,2,)。对多
行数量定义通常保留最后一个逗号,这样要添加一个新单
元时更方便。
2. 使用短数组定义语法:用[]替代 array()。
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);
// 自 PHP 5.4 起
$array = [
"foo" => "bar",
"bar" => "foo",
];
?>
3. Key 会有如下的强制转换:
1) 包含有合法整型值的字符串会被转换为整型。例如:键
名“8”实际会被储存为 8。但是“08”则不会强制转
换,因为其不是一个合法的十进制数值。
2) 浮点数也会被转换为整型,意味着其小数部分会被舍去。
例如:键名 8.7 实际会被储存为 8。
3) 布尔值也会被转换成整型。即键名 true 实际会被储存
为 1 而键名 false 会被储存为 0.
4) Null 会被转换为空字符串,即键名 null 实际会被储存
为””。
5) 数组和对象不能被用为键名。坚持这么做会导致警告:
illegal offset type。
6) 如果在数组定义中多个单元都使用了同一个键名,则只
使用了最后一个,之前的都被覆盖了。
(三) 用方括号的语法新建、修改
1. 可以通过明确地设定其中的值来修改一个已有数组。
这是通过在方括号内指定键名来给数组赋值实现的。也可
以省略键名,在这种情况下给变量名加上一对空的方括号
([])。
$arr[key] = value;
$arr[] = value;
2. 要修改某个值,通过其键名给该单元赋一个新值。要删除
某键值对,对其调用 unset() 函数。
<?php
$arr = array(5 => 1, 12 => 2);
$arr[] = 56; // 这和$arr[13] = 56 是一样的;
$arr["x"] = 42; // 这将向数组中添加一个带有键“x”的新元
素
unset($arr[5]); // 这将从数组中移除元素。
unset($arr); // 这会删除整个数组
?>
(四) 遍历数组
1. Foreach 语法结构提供了遍历数组的简单方式。
2. 两种语法:
1) Foreach(数组 as $value){}
2) Foreach(数组 as $key => $value){}
(五) 数组转换成 json
1. Json_encode : 对变量进行 json 编码,返回字符串,包含了
value 值 json 形式的表示。
2. <?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>
输出 :{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}
(三) 全局变量:global
1. <?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
?>
(六) PHP 中的超全局变量