零、phpstorm的配置:
当我们下载好phpstorm后,需要更改一些配置才能正常访问网页:
1、点击File--setting--PHP后,点击下图的三个点(这边需要留意的是PHP language level的版本,图上是5.6)
2、点击加号--选择-Local Path to Interpreter...--设置PHP executable的文件路径:
3、选择我们phpstudy的安装目录,往下找到PHP Tutorial,选择任意一个比PHP language level的版本一样或高的版本,选择php.exe;
E:\php\php-5.6.27-nts\php.exe
4、完成配置
一、PHP 简介
1、PHP是什么
-
PHP(Hypertext Preprocessor,即 “超文本预处理器”)是一种功能强大的嵌入式通用开源脚本语言。它在互联网领域发挥着至关重要的作用,为网站开发和动态网页生成提供了高效且便捷的解决方案。
-
PHP 凭借其简单易学、易用、跨平台、开源等显著特点,迅速成为主流的网站开发语言之一。其应用范围广泛,涵盖了电商、社交、新闻、博客等各个行业的网站。无论是小型个人网站还是大型企业级应用,都能看到 PHP 的身影。
-
PHP 脚本在服务器端执行,这意味着当用户在浏览器中请求页面时,服务器会先处理 PHP 脚本生成相应的 HTML 内容,然后将最终的 HTML 页面返回给浏览器显示。
2、PHP文件是什么
-
PHP 文件是一种综合性的文档,它通常由文本、HTML 标记、JavaScript 代码以及 PHP 代码等多种元素组成。这些不同类型的代码相互协作,共同实现网页的功能和呈现效果。
-
PHP 代码在服务器端执行,其执行结果以纯 HTML 格式返回给浏览器。这使得网页能够根据不同的条件和用户输入动态生成内容,提供更加个性化和交互性的用户体验。
-
PHP 文件的默认扩展名是.php,这一扩展名向服务器和开发工具表明该文件包含 PHP 代码,需要进行相应的处理和解释。
3、PHP的作用
-
PHP 可以生成动态页面内容:
PHP 具有强大的动态页面生成能力,能够根据用户的操作、数据库中的数据以及各种条件实时生成个性化的页面内容。例如,根据用户的登录状态显示不同的信息,或者根据用户的搜索关键词提供相关的结果。 -
PHP 可以创建、打开、读取、写入、关闭服务器上的文件:
PHP 可以对服务器上的文件进行全面的操作,包括创建新文件、打开现有文件、读取文件内容、向文件写入数据以及关闭文件。这使得网站能够实现文件上传、下载、日志记录等功能。 -
PHP 可以收集表单数据:
PHP 能够方便地收集用户通过表单提交的数据,如注册信息、留言内容、订单详情等。通过对这些数据的处理,网站可以实现与用户的交互和信息收集。 -
PHP 可以发送和接收 cookies:
PHP 支持发送和接收 cookies,用于在用户的浏览器中存储和获取数据。Cookies 可以用于记住用户的登录状态、偏好设置、购物车信息等,提升用户在网站上的体验。 -
PHP 可以添加、删除、修改您的数据库中的数据:
PHP 可以与各种数据库系统进行交互,实现对数据库中数据的添加、删除、修改和查询操作。这使得网站能够存储和管理大量的信息,如用户数据、文章内容、商品信息等。 -
PHP 可以限制用户访问您的网站上的一些页面:
PHP 可以通过设置访问权限和条件判断,限制用户对网站某些页面或功能的访问。例如,只有注册并登录的用户才能访问特定的会员页面,或者只有管理员才能执行某些敏感操作。 -
PHP 可以加密数据:
PHP 提供了加密相关的函数和方法,可以对数据进行加密处理,确保数据在传输和存储过程中的安全性和保密性,保护用户的隐私和网站的重要信息。
通过 PHP 的强大功能,我们不再局限于输出简单的 HTML 页面。它还能够输出各种多媒体文件,如图像、PDF 文件,甚至是复杂的 Flash 电影。不仅如此,我们还可以生成各种特定格式的文本,比如 XHTML 和 XML,以满足不同的需求和应用场景。
4、使用 PHP的原因
-
PHP 可在不同的平台上运行(Windows、Linux、Unix、Mac OS X 等):
PHP 具有出色的跨平台性,能够在多种操作系统上稳定运行,包括 Windows、Linux、Unix、Mac OS X 等。这使得开发人员可以在自己熟悉的操作系统上进行开发,然后将应用轻松部署到不同的服务器环境中,减少了因平台差异带来的兼容性问题。 -
PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等):
PHP 与目前几乎所有正在被广泛使用的服务器软件相兼容,如 Apache、IIS 等。这种广泛的兼容性使得在不同的服务器配置下部署 PHP 应用变得非常简单,降低了服务器配置和部署的复杂性和成本。 -
PHP 提供了广泛的数据库支持:
PHP 提供了对众多主流数据库系统的支持,如 MySQL、Oracle、SQL Server 等。通过丰富的数据库扩展和函数库,开发人员可以方便地与数据库进行交互,执行各种复杂的数据库操作,满足不同规模和需求的应用场景。 -
PHP 易于学习,并可高效地运行在服务器端:
PHP 的语法相对简单易懂,学习曲线较为平缓,对于初学者来说容易入门。同时,PHP 在服务器端的运行效率较高,能够快速处理大量的并发请求,保证网站的性能和响应速度。
二、PHP基本语法
1、PHP的基本语法
PHP 脚本在文档中的位置非常灵活,可以嵌入在 HTML 代码的任何位置。
PHP 的基本语法结构如下:
<?php
// PHP 代码
?>
- PHP 文件的默认文件扩展名是 .php;
- 在一个 PHP 文件中,通常会包含 HTML 标签和 PHP 脚本代码。两者相互配合,共同构建出完整的网页功能和显示效果。
- 例:下面,我们提供了一个简单的 PHP 文件实例,它可以向浏览器输出文本 "Hello World!":
<!DOCTYPE html>
<meta charset="utf-8"/>
<html>
<body>
<h1>My first PHP page</h1>
<?php
echo "Hello World!";
?>
</body>
</html>
注意事项:
1、PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于清晰地区分不同的指令集,确保 PHP 解释器能够正确理解和执行代码。
2、通过 PHP 向浏览器输出文本有两种基础指令:echo 和 print。然而,由于 print 指令在某些情况下可能存在性能和使用便利性方面的不足,因此在实际开发中,通常更推荐使用 echo 指令。
2、PHP 中的注释
-
程序的注释是解释性语句,注释中的所有字符会被 PHP 解释器忽略。所有的编程语言都允许某种形式的注释。
-
因此,注释就是为了增强源代码的可读性;而在PHP中,就 支持 单行注释 和 多行注释 。
1) 多行注释:
多行注释以 /* 开始,以 */ 结束。需要注意的是,多行注释不能嵌套使用,以避免可能的混淆和错误。
2) 单行注释:
单行注释以 // 开始,从 // 之后到本行结束的所有文字都被视为注释内容。
<?php
// 这是 PHP 单行注释 //这个就是嵌套 //再来一个嵌套
/*
这是PHP 多行注释
*/
?>
三、PHP变量和数据类型
1、PHP变量:
-
变量在编程中就像是用于存储信息的 “容器”,可以根据需要随时更改其中存储的值。
<?php
$x=5;$y=6;$z=$x+$y;
echo $z;
?>
-
这种方式与代数中的概念类似。
x=5;y=6;z=x+y;
在代数中,我们使用字母,并给它赋值;
从上面的表达式 z=x+y ,我们可以计算出 z 的值为 11。在 PHP 中,这些字母被称为变量。
2、PHP 变量规则:
变量的命名在 PHP 中有着明确的规范:
-
首先,变量必须以 $ 符号开头,然后紧跟变量的名称。
-
变量名的起始字符必须是字母或者下划线。
-
变量名只能由字母、数字以及下划线(A-z、0-9 和 _ )组成。
-
变量名中不能包含空格,以确保变量名的一致性和可识别性。
-
变量名是区分大小写的,这意味着 $y 和 $Y 被视为两个完全不同的变量。
重要提示: PHP 中的语句和变量都是区分大小写的,因此在编写代码时必须严格遵循这一规则,以避免因大小写不一致导致的错误。
3、创建(声明)PHP 变量
-
PHP 没有声明变量的命令。变量在您第一次赋值给它的时候被创建
<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>
-
在上面的语句执行中,变量 txt 将保存值 Hello world!,且变量 x 将保存值 5。
-
注意:当赋一个文本值给变量时,需要在文本值两侧加上引号。
PHP 是一门弱类型语言
-
在上述实例中,我们可以发现,在 PHP 中无需事先声明变量的数据类型。
-
PHP 会根据变量所赋的值自动推断并转换为合适的数据类型。
-
与之相对,在强类型的编程语言中,如 Java 、C++ 等,在使用变量之前必须明确声明(定义)变量的类型和名称。
四、PHP数据类型
-
PHP语言有7种数据类型,每一个变量对应着一个数据类型:
-
字符串(String) , 整型(Integer) , 浮点型 (Float), 布尔型 (boolean), 数组(Array) , 对象 (Object),空值(NULL)
1、字符串(String)
-
字符串变量用于存储并处理文本;
-
字符串变量用于包含有字符的值;
-
在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把它存储在变量中;
-
我们可以将将任何文本放在 单引号 或 双引号 中形成一个字符串“0
在下面的实例中,我们创建一个名为 txt 的字符串变量,并赋值为 "Hello world!" 。然后我们输出 txt 变量的值:
<?php
$txt="Hello world!";
echo $txt;
?>
//输出:
Hello world!
-
注意:当赋一个文本值给变量时,请记得给文本值加上单引号或者双引号。
2、整型(Integer)
-
整数是一个没有小数的数字
【PHP var_dump() 函数可以输出变量的值和数据类型】
-
整数规则:
-
整数可以是正数或负数
-
整型可以用三种格式来指定:十进制,十六进制 ( 前缀为 0x ) 或八进制 ( 前缀为 0 )
-
<?php
$x = 29;
echo "$x";echo "<br>";
var_dump($x);echo "<br><br>";
$y = -29;
echo "$y";echo "<br>";
var_dump($y);echo "<br><br>";
$x = 0xcc; //十六进制
echo "$x";echo "<br>";
var_dump($x);echo "<br><br>";
$y = 027; //八进制
echo "$y";echo "<br>";
var_dump($y);echo "<br><br>";
?>
输出:
29
int(29)
-29
int(-29)
204
int(204)
23
int(23)
3、浮点型(Float)
-
浮点数是带小数部分的数字,或是指数形式
<?php
$x = 27.365;
echo "$x";echo "<br>";
var_dump($x);echo "<br><br>";
$y = 27.4e3; //27400
echo "$y";echo "<br>";
var_dump($y);echo "<br><br>";
$x = 2e-5; //2.0e-5
echo "$x";echo "<br>";
var_dump($x);echo "<br><br>";
?>
//输出:
27.365
float(27.365)
27400
float(27400)
2.0E-5
float(2.0E-5)
4、布尔型(boolean)
布尔型可以是常量 TRUE 或 FALSE【TRUE 或 FALSE 大小写都可以,不过为了好识别,一般情况下使用小写的】
布尔型通常用于条件判断。在接下来的条件控制章节中你们会频繁和 BOOL 类型打交道
<?php
$x = true;
$y = false;
var_dump($x);echo "<br>";
var_dump($y);
?>
//输出:
bool(true)
bool(false)
5、数组(Array)
数组可以在一个变量中存储多个值
在接下来的章节中我们将学到更多关于数组的知识
<?php
$cars = array("zzy","szy","wh");
echo "<pre>";
var_dump($cars);
echo "</pre>"
?>
//输出:
array(3) {
[0]=>
string(3) "zzy"
[1]=>
string(3) "szy"
[2]=>
string(2) "wh"
}
6、对象(Object)
对象数据类型也可以用于存储数据
在 PHP 中,对象必须先声明然后再使用。首先,必须使用 class 关键字声明类对象,类是可以包含属性和方法的结构。然后我们在类中定义数据类型,最后在实例化的类中使用数据类型。
下面的范例中 PHP 关键字 this 就是指向当前对象实例的指针,不指向任何其它对象或类:
<?php
class Car
{
var $color;
function __construct($color = "green")
{
$this->color = $color;
}
function what_color(){
return $this->color;
}
}
function print_vars($obj)
{
foreach (get_object_vars($obj) as $prop => $val)
{
echo "/t$prop = $val\n";
}
}
//instantiate one object
$herbie = new Car("white");
//show herbie properties
echo "\herbie:Properties\n";
print_vars($herbie)
?>
//输出:
\herbie:Properties /tcolor = white
7、空值(NULL)
NULL 值表示变量没有值
null 是数据类型为 NULL 的值
null 不区分大小写,可以使 null 或 NULL,但推荐使用 NULL;
可以通过设置变量值为 NULL 来清空变量数据
<?php
$x = NULL;
var_dump($x);
?>
五、PHP 运算符
在 PHP 中,赋值运算符 = 用于给变量赋值。 在 PHP 中,算术运算符 + 用于把值加在一起。
1、PHP 算术运算符
运算符 | 名称 | 描述 | 实例 | 结果 |
---|---|---|---|---|
x + y | 加 | x 和 y 的和 | 2 + 2 | 4 |
x - y | 减 | x 和 y 的差 | 5 - 2 | 3 |
x * y | 乘 | x 和 y 的积 | 5 * 2 | 10 |
x / y | 除 | x 和 y 的商 | 15 / 5 | 3 |
x % y | 模(除法的余数) | x 除以 y 的余数 | 5 % 2 | 1 |
-x | 设置复数 | 取 x 的相反符号 | <?php $x = 2;echo -$x; ?> | -2 |
~x | 取反 | x 取反,按二进制位进行“取反”运算。运算规则:~1=-2;~0=-1; | <?php $x = 2;<br/>echo ~$x; ?> | -3 |
a . b | 并置 | 连接两个字符串 | “Hi”."Ha" | HiHa |
<?php
$x=10;
$y=6;
echo ($x + $y); // 输出16
echo '<br>';
echo ($x - $y); // 输出4
echo '<br>';
echo ($x * $y); // 输出60
echo '<br>';
echo ($x / $y); // 输出1.6666666666667
echo '<br>';
echo ($x % $y); // 输出4
echo '<br>';
echo -$x;
?>
PHP7+ 版本新增整除运算符 intdiv(),该函数返回值为第一个参数除于第二个参数的值并取整(向下取整),使用实例:
<?php
var_dump(intdiv(10, 3));
?>
2、PHP 赋值运算符
运算符 | 等同于 | 描述 |
---|---|---|
x = y | x = y | 左操作数被设置为右侧表达式的值 |
x += y | x = x + y | 加 |
x -= y | x = x - y | 减 |
x *= y | x = x * y | 乘 |
x /= y | x = x / y | 除 |
x = x / y | x = x % y | 模(除法的余数) |
a .= b | a = a . b | 连接两个字符串 |
<?php
$x=10;
echo $x; // 输出10
$y=20;
$y += 100;
echo $y; // 输出120
$z=50;
$z -= 25;
echo $z; // 输出25
$i=5;
$i *= 6;
echo $i; // 输出30
$j=10;
$j /= 5;
echo $j; // 输出2
$k=15;
$k %= 4;
echo $k; // 输出3
?>
<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出Hello world!
$x="Hello";
$x .= " world!";
echo $x; // 输出Hello world!
?>
3、PHP 递增/递减运算符
运算符 | 名称 | 描述 |
---|---|---|
++ x | 预递增 | x 加 1,然后返回 x |
x ++ | 后递增 | 返回 x,然后 x 加 1 |
-- x | 预递减 | x 减 1,然后返回 x |
x -- | 后递减 | 返回 x,然后 x 减 1 |
<?php
$x=10;
echo ++$x; // 输出11
$y=10;
echo $y++; // 输出10
$z=5;
echo --$z; // 输出4
$i=5;
echo $i--; // 输出5
?>
4、PHP 比较运算符
运算符 | 名称 | 描述 | 实例 |
---|---|---|---|
x == y | 等于 | 如果 x 等于 y,则返回 true | 5==8 返回 false |
x ===y | 绝对等于 | 如果 x 等于 y,且它们类型相同,则返回true | 5==="5" 返回false |
x != y | 不等于 | 如果 x 不等于 y,则返回 true | 5!=8 返回 true |
x <> y | 不等于 | 如果 x 不等于 y,则返回 true | 5<>8 返回 true |
x !== y | 不绝对等于 | 如果 x 不等于 y,或它们类型不相同,则返回 | 5!=="5" 返回 true |
x > y | 大于 | true如果 x 大于 y,则返回 true | 5!=="5" 返回 true |
x < y | 小于 | 如果 x 小于 y,则返回 true | 5<8 返回 true |
x >= y | 大于等于 | 如果 x 大于或者等于 y,则返回 true | 5>=8 返回 false |
x <= y | 小于等于 | 如果 x 小于或者等于 y,则返回 true | 5<=8 返回 true |
<?php
$x=100;
$y="100";
var_dump($x == $y); //true
echo "<br>";
var_dump($x === $y); //false
echo "<br>";
var_dump($x != $y); //false
echo "<br>";
var_dump($x !== $y); //true
echo "<br>";
$a=50;
$b=90;
var_dump($a > $b); //false
echo "<br>";
var_dump($a < $b); //true
?>
5、PHP 逻辑运算符
运算符 | 名称 | 描述 | 实例 |
---|---|---|---|
x and y | 与 | 如果 x 和 y 都为 true,则返回 true | x=6 y=3 (x < 10 and y > 1) 返回 true |
x or y | 或 | 如果 x 和 y 至少有一个为 true,则返回 true | x=6 y=3 (x==6 or y==5) 返回 true |
x xor y | 异或 | 如果 x 和 y 有且仅有一个为 true,则返回 true | x=6 y=3 (x==6 xor y==3) 返回 false |
x && y | 与 | 如果 x 和 y 都为 true,则返回 true | x=6 y=3 (x < 10 && y > 1) 返回 true |
x || y | 或 | 如果 x 和 y 至少有一个为 true,则返回 true | x=6 y=3 (x==5 || y==5) 返回 false |
! x | 非 | 如果 x 不为 true,则返回 true | x=6 y=3 !(x==y) 返回 true |
6、PHP 数组运算符
运算符 | 名称 | 描述 |
---|---|---|
x + y | 集合 | x 和 y 的集合 |
x == y | 相等 | 如果 x 和 y 具有相同的键/值对,则返回 true |
x === y | 恒等 | 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true |
x != y | 不相等 | 如果 x 不等于 y,则返回 true |
x <> y | 不相等 | 如果 x 不等于 y,则返回 true |
x !== y | 不恒等 | 如果 x 不等于 y,则返回 true |
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // $x 和 $y 数组合并
var_dump($z);
var_dump($x == $y);
var_dump($x === $y);
var_dump($x != $y);
var_dump($x <> $y);
var_dump($x !== $y);
?>
7、三元运算符
-
另一个条件运算符是"?:"(或三元)运算符 。语法格式:
(expr1) ? (expr2) : (expr3)
对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
实例:
<?php
// 普通写法
$username = 11>10 ? 'yes' : 'no';
echo $username, PHP_EOL;
?>
8、运算符优先级
-
下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。
-
说明:左 = 从左到右,右 = 从右到左。
结合方向 | 运算符 | 附加信息 |
---|---|---|
无 | clone new | clone 和 new |
左 | [ | array() |
右 | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | 类型和递增/递减 |
无 | instanceof | 类型 |
右 | ! | 逻辑运算符 |
左 | * / % | 算术运算符 |
左 | + - . | 算术运算符和字符串运算符 |
左 | << >> | 位运算符 |
无 | == != === !== <> | 比较运算符 |
左 | & | 位运算符和引用 |
左 | ^ | 位运算符 |
左 | | | 位运算符 |
左 | && | 逻辑运算符 |
左 | || | 逻辑运算符 |
左 | ?: | 三元运算符 |
右 | = += -= *= /= .= %= &= |= ^= <<= >>= => | 赋值运算符 |
左 | and | 逻辑运算符 |
左 | xor | 逻辑运算符 |
左 | or | 逻辑运算符 |
左 | , | 多处用到 |
运算符优先级中,or 和 ||,&& 和 and 都是逻辑运算符,效果一样,但是其优先级却不一样。
<?php
// 优先级: && > = > and
// 优先级: || > = > or
$a = 3;
$b = false;
$c = $a or $b;
var_dump($c); // 这里的 $c 为 int 值3,而不是 boolean 值 true
$d = $a || $b;
var_dump($d); //这里的 $d 就是 boolean 值 true
?>
括号的使用
我们通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,通常能够增加代码的可读性。
<?php
// 括号优先运算
$a = 1;
$b = 2;
$c = 3;
$d = $a + $b * $c;
echo $d;
echo "\n";
$e = ($a + $b) * $c; // 使用括号
echo $e;
echo "\n";
?>
六、局部和全局作用域
1、局部和全局作用域
-
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,
-
要在一个函数中访问一个全局变量,需要使用 global 关键字
-
(内部函数要访问外部变量的时候需要globol在“引入”)
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
<?php
$x=5; // 全局变量
function myTest()
{
$y=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo "变量 x 为: $x <br>"; //报错
echo "变量 y 为: $y";
}
myTest();
echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y"; //报错
?>
在函数中访问全局变量:
<?php
// 全局变量
$x=5;
function myTest()
{
global $x; //使用关键字
$y=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo $x; //5
echo "<br>";
echo "变量 y 为: $y";
}
myTest();
echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
//echo "变量 y 为: $y";
?>
2、global 关键字
-
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,需要在函数中的变量前加上 global 关键字:
<?php
$x=5;
$y=10;
function myTest()
{
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
-
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
上面的实例可以写成这样:
<?php
$x=5;
$y=10;
function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y;
?>
七、作用域
1、Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。 要做到这一点,请在第一次声明变量时使用 static 关键字:
<?php
function myTest()
{
static $x=0; //static关键字删除之后 所有结果都是0
echo $x;
$x++;
echo PHP_EOL; // 换行符
}
myTest();
myTest();
myTest();
?>
然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
注释:该变量仍然是函数的局部变量。
2、参数作用域
参数是通过调用代码将值传递给函数的局部变量。 参数是在参数列表中声明的,作为函数声明的一部分:
<?php
function myTest($x)
{
echo $x;
}
myTest(5);
?>
八、相关函数
1、PHP strlen() 函数
有时知道字符串值的长度是很有用的。 strlen() 函数返回字符串的长度(字节数)。 下面的实例返回字符串 "Hello world!" 的长度:
<?php
echo strlen("Hello world!");
?>
上面的代码将输出:12 提示:strlen() 常常用在循环和其他函数中,因为那时确定字符串何时结束是很重要的。(例如,在循环中,我们需要在字符串中的最后一个字符之后结束循环。)
2、PHP strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。 如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。 下面的实例在字符串 "Hello world!" 中查找文本 "world":
<?php
echo strpos("Hello world!","world");
?>
上面的代码将输出:6 提示:在上面的实例中,字符串 "world" 的位置是 6。之所以是 6 而不是 7 的原因是,字符串中第一个字符的位置是 0,而不是 1。后面数组下标也是从0开始
3、PHP If...Else 语句
条件语句用于根据不同条件执行不同动作。
PHP 条件语句
当您编写代码时,您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。 在 PHP 中,提供了下列条件语句:
-
if 语句 - 在条件成立时执行代码
-
if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
-
if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块
-
switch 语句 - 在若干条件之一成立时执行一个代码块
1)PHP - if
if 语句用于仅当指定条件成立时执行代码。 语法:
if (条件)
{
条件成立时要执行的代码;
}
如果当前时间小于 20,下面的实例将输出 "Have a good day!"
<?php
时
$t=date("H");
if ($t<"20")
{
echo "Have a good day!";
}
分
$t=date("i");
echo $t;
echo "\n";
if ($t<20)
{
echo "Have a good day!";
}
?>
2)PHP - if...else
在条件成立时执行一块代码,条件不成立时执行另一块代码,请使用 if....else 语句。
if (条件)
{
条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}
如果当前时间小于 20,下面的实例将输出 "Have a good day!",否则输出 "Have a good night!":
<?php
$t=date("H");
if ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}
?>
3)PHP - if...elseif....else
在若干条件之一成立时执行一个代码块,请使用 if....elseif...else 语句。
if (条件)
{
if 条件成立时执行的代码;
}
elseif (条件)
{
elseif 条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}
如果当前时间小于 10,下面的实例将输出 "Have a good morning!",如果当前时间不小于 10 且小于20,则输出 "Have a good day!",否则输出 "Have a good night!"
<?php
$t=date("H");
if ($t<"10")
{
echo "Have a good morning!";
}
elseif ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}
?>
4)PHP - switch 语句
switch 语句用于根据多个不同条件执行不同动作。 如果您希望有选择地执行若干代码块之一,请使用 switch 语句
<?php
switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}
?>
工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。
<?php
$favcolor="red";
switch ($favcolor)
{
case "red":
echo "你喜欢的颜色是红色!";
break;
case "blue":
echo "你喜欢的颜色是蓝色!";
break;
case "green":
echo "你喜欢的颜色是绿色!";
break;
default:
echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}
?>
4、PHP 循环
在您编写代码时,您经常需要让相同的代码块一次又一次地重复运行。我们可以在代码中使用循环语句 来完成这个任务。 在 PHP 中,提供了下列循环语句:
-
while - 只要指定的条件成立,则循环执行代码块
-
do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
-
for - 循环执行代码块指定的次数
-
foreach - 根据数组中每个元素来循环代码块
1)while 循环
while 循环将重复执行代码块,直到指定的条件不成立。
while (条件)
{
要执行的代码;
}
下面的实例首先设置变量 i 的值为 1 ($i=1;)。 然后,只要 i 小于或者等于 5,while 循环将继续运行。循环每运行一次,i 就会递增 1
<html>
<body>
<?php
$i=1;
while($i<=5)
{
echo "The number is " . $i . "<br>";
$i++;
}
?>
</body>
</html>
输出
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5
2)do...while 语句
do...while 语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环。
do
{
要执行的代码;
}
while (条件);
实例 下面的实例首先设置变量 i 的值为 1 ($i=1;)。 然后,开始 do...while 循环。循环将变量 i 的值递增 1,然后输出。先检查条件(i 小于或者等于 5),只要 i 小于或者等于 5,循环将继续运行
<html>
<body>
<?php
$i=1;
do
{
$i++;
echo "The number is " . $i . "<br>";
}
while ($i<=5);
?>
</body>
</html>
输出:
The number is 2
The number is 3
The number is 4
The number is 5
The number is 6
3)For 循环
for 循环用于您预先知道脚本需要运行的次数的情况。
语法:
for (初始值; 条件; 增量)
{
要执行的代码;
}
参数:
-
初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。
-
条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
-
增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。
注释:上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)。
实例 下面的实例定义一个初始值为 i=1 的循环。只要变量 i 小于或者等于 5,循环将继续运行。循环每运行一次,变量 i 就会递增 1
<?php
for ($i=1; $i<=5; $i++)
{
echo "数字为 " . $i . PHP_EOL;
}
?>
输出:
数字为 1
数字为 2
数字为 3
数字为 4
数字为 5
4)foreach 循环
foreach 循环用于遍历数组:
foreach ($array as $value)
{
要执行代码;
}
每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。
foreach ($array as $key => $value)
{
要执行代码;
}
实例:
<?php
$x=array("Google","Runoob","Taobao");
foreach ($x as $value)
{
echo $value . PHP_EOL;
}
?>
下面的实例演示了一个输出给定数组键与值的循环:
<?php
$x=array("Google", "Runoob","Taobao");
foreach ($x as $value)
{
echo " value 为 ". $value ;
}
?>