php
PHP - Hypertext Preprocessor(超级文本预处理语言)
PHP 是一种 HTML 内嵌式的语言,都是一种在服务器端执行的嵌入HTML文档的脚本语言。
php语法
PHP 脚本以 <?php 开头,以 ?> 结尾:
<?php // 此处是 PHP 代码 ?>
比如
<!DOCTYPE html> <html> <body> <h1>我的第一张 PHP 页面</h1> <?php echo "Hello World!"; ?> </body> </html>
三种注解
// 这是单行注释 # 这也是单行注释 /* 这是多行注释块 它横跨了 多行 */
在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。
不过在 PHP 中,所有变量都对大小写敏感。
变量
<?php $x=5; $y=6; $z=$x+$y; echo $z; ?>
结果是5+6 = 11
PHP 变量作用域
PHP 有三种不同的变量作用域:
- local(局部) 局部访问不了全局变量
- global(全局)
- static(静态) 不删除局部变量
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
<?php $x=5; // 全局作用域 function myTest() { $y=10; // 局部作用域 echo "<p>测试函数内部的变量:</p>"; echo "变量 x 是:$x"; echo "<br>"; echo "变量 y 是:$y"; } myTest(); echo "<p>测试函数之外的变量:</p>"; echo "变量 x 是:$x"; echo "<br>"; echo "变量 y 是:$y"; ?>
在函数内部测试变量: 变量 x 是: 变量 y 是:10 在函数之外测试变量: 变量 x 是:5 变量 y 是:
输出方法
echo 和 print 之间的差异:
- echo - 能够输出一个以上的字符串
- print - 只能输出一个字符串,并始终返回 1
提示:echo 比 print 稍快,因为它不返回任何值。
数据类型
PHP 字符串
<?php $x = "Hello world!"; echo $x; echo "<br>"; $x = 'Hello world!'; echo $x; ?>
PHP 整数
整数规则:
- 整数必须有至少一个数字(0-9)
- 整数不能包含逗号或空格
- 整数不能有小数点
- 整数正负均可
- 可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)
<?php $x = 5985; var_dump($x); echo "<br>"; $x = -345; // 负数 var_dump($x); echo "<br>"; $x = 0x8C; // 十六进制数 var_dump($x); echo "<br>"; $x = 047; // 八进制数 var_dump($x); ?>
PHP 浮点数
<?php $x = 10.365; var_dump($x); echo "<br>"; $x = 2.4e3; var_dump($x); echo "<br>"; $x = 8E-5; var_dump($x); ?>
PHP 逻辑
$x=true; $y=false;
PHP 数组
<?php $cars=array("Volvo","BMW","SAAB"); var_dump($cars); ?>
PHP 对象
<?php class Car { var $color; function Car($color="green") { $this->color = $color; } function what_color() { return $this->color; } } ?>
PHP 字符串函数
PHP strlen() 函数
<?php echo strlen("Hello world!"); ?>
以上代码的输出是:12
PHP strpos() 函数
<?php echo strpos("Hello world!","world"); ?>
//strpos() 函数用于检索字符串内指定的字符或文本。
以上代码的输出是:6。
PHP 常量
常量类似变量,但是常量一旦被定义就无法更改或撤销定义。
常量名称前面没有 $ 符号
<?php define("GREETING", "Welcome to W3School.com.cn!"); echo GREETING; ?>
PHP 算数运算符
<?php $x=10; $y=6; echo ($x + $y); // 输出 16 echo ($x - $y); // 输出 4 echo ($x * $y); // 输出 60 echo ($x / $y); // 输出 1.6666666666667 echo ($x % $y); // 输出 4 ?>
PHP 赋值运算符
<?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 字符串运算符
<?php $a = "Hello"; $b = $a . " world!"; echo $b; // 输出 Hello world! $x="Hello"; $x .= " world!"; echo $x; // 输出 Hello world! ?>
PHP 递增/递减运算符
<?php $x=10; echo ++$x; // 输出 11 $y=10; echo $y++; // 输出 10 $z=5; echo --$z; // 输出 4 $i=5; echo $i--; // 输出 5 ?>
PHP 比较运算符
<?php $x=100; $y="100"; var_dump($x == $y); echo "<br>"; var_dump($x === $y); echo "<br>"; var_dump($x != $y); echo "<br>"; var_dump($x !== $y); echo "<br>"; $a=50; $b=90; var_dump($a > $b); echo "<br>"; var_dump($a < $b); ?>
PHP 逻辑运算符
PHP 数组运算符
<?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); ?>
PHP 条件语句
在 PHP 中,我们可以使用以下条件语句:
- if 语句 - 如果指定条件为真,则执行代码
- if...else 语句 - 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
- if...elseif....else 语句 - 选择若干段代码块之一来执行
- switch 语句 - 语句多个代码块之一来执行
<?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!"; } ?>
<?php switch ($x) { case 1: echo "Number 1"; break; case 2: echo "Number 2"; break; case 3: echo "Number 3"; break; default: echo "No number between 1 and 3"; } ?> </body> </html>
PHP 循环
在 PHP 中,我们有以下循环语句:
- while - 只要指定条件为真,则循环代码块
- do...while - 先执行一次代码块,然后只要指定条件为真则重复循环
- for - 循环代码块指定次数
- foreach - 遍历数组中的每个元素并循环代码块
在 PHP 创建用户定义函数
<?php function writeMsg() { echo "Hello world!"; } writeMsg(); // 调用函数 ?>
在 PHP 中创建数组
<?php $cars=array("Volvo","BMW","SAAB"); echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . "."; ?>
PHP - 数组的排序函数
我们将学习如下 PHP 数组排序函数:
- sort() - 以升序对数组排序
- rsort() - 以降序对数组排序
- asort() - 根据值,以升序对关联数组进行排序
- ksort() - 根据键,以升序对关联数组进行排序
- arsort() - 根据值,以降序对关联数组进行排序
- krsort() - 根据键,以降序对关联数组进行排序
<?php $numbers=array(3,5,1,22,11); sort($numbers); ?>
PHP 全局变量 - 超全局变量
这些超全局变量是:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
$GLOBALS — 引用全局作用域中可用的全部变量
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
PHP $_SERVER
$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?>
PHP $_REQUEST
PHP $_REQUEST 用于收集 HTML 表单提交的数据。
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
PHP $_POST
PHP $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
PHP $_GET
PHP $_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。