PHP学习笔记2-基础知识
来源:互联网 发布:linux kvm虚拟化 编辑:程序博客网 时间:2024/05/17 02:53
常量
常量类似变量,但是常量一旦被定义就无法更改或撤销定义。
常量是单个值的标识符(名称)。在脚本中无法改变该值。
有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
注释:与变量不同,常量贯穿整个脚本是自动全局的。
如需设置常量,请使用 define() 函数 - 它使用三个参数:
首个参数定义常量的名称
第二个参数定义常量的值
可选的第三个参数规定常量名是否对大小写敏感。默认是 false。
<?phpdefine("GREETING", "Welcome to W3School.com.cn!"); //大小写敏感define("GREETING", "Welcome to W3School.com.cn!", true); //大小写不敏感echo GREETING;?>
运算符
<?php $x=10; $y=6;echo ($x + $y); // 输出 16echo ($x - $y); // 输出 4echo ($x * $y); // 输出 60echo ($x / $y); // 输出 1.6666666666667echo ($x % $y); // 输出 4?>
赋值运算符
PHP 赋值运算符用于向变量写值。
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$a = "Hello";$b = $a . " world!";echo $b; // 输出 Hello world!$x="Hello";$x .= " world!";echo $x; // 输出 Hello world!?>
递增/递减运算符
<?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); //全等(完全相同)如果 $x 等于 $y,且它们类型相同,则返回 true。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);?>
逻辑运算符
and 与
or 或
xor 异或
&& 与
|| 或
! 非
数组运算符
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); //如果 $x 和 $y 拥有相同的键/值对,则返回 true。var_dump($x === $y); // 如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。var_dump($x != $y); //如果 $x 不等于 $y,则返回 true。var_dump($x <> $y); //如果 $x 不等于 $y,则返回 true。var_dump($x !== $y); //如果 $x 与 $y 完全不同,则返回 true。?>
语句
if…elseif….else 语句
<?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!";}?>
Switch 语句
如果您希望有选择地执行若干代码块之一,请使用 Switch 语句。
使用 Switch 语句可以避免冗长的 if..elseif..else 代码块。
工作原理:
对表达式(通常是变量)进行一次计算
把表达式的值与结构中 case 的值进行比较
如果存在匹配,则执行与 case 关联的代码
代码执行后,break 语句阻止代码跳入下一个 case 中继续执行
如果没有 case 为真,则使用 default 语句
<?phpswitch ($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>
for循环
<?php for ($x=0; $x<=10; $x++) { echo "数字是:$x <br>";} ?>
foreach 循环
foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。
每进行一次循环迭代,当前数组元素的值就会被赋值给
<?php $colors = array("red","green","blue","yellow"); foreach ($colors as $value) { echo "$value <br>";}?>
函数
PHP 的真正力量来自它的函数:它拥有超过 1000 个内建的函数。
PHP 用户定义函数
除了内建的 PHP 函数,我们可以创建我们自己的函数。
函数是可以在程序中重复使用的语句块。
页面加载时函数不会立即执行。
函数只有在被调用时才会执行。
注释:函数名能够以字母或下划线开头(而非数字)。
注释:函数名对大小写不敏感。
提示:函数名应该能够反映函数所执行的任务。
在下面的例子中,我们创建名为 “writeMsg()” 的函数。打开的花括号({)指示函数代码的开始,而关闭的花括号(})指示函数的结束。此函数输出 “Hello world!”。如需调用该函数,只要使用函数名即可:
<?phpfunction writeMsg() { echo "Hello world!";}writeMsg(); // 调用函数?>
函数参数
可以通过参数向函数传递信息。参数类似变量。
参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
下面的例子中的函数有一个参数($fname)。当调用 familyName() 函数时,我们同时要传递一个名字(例如 Bill),这样会输出不同的名字,但是姓氏相同:
<?phpfunction familyName($fname,$year) { echo "$fname Zhang. Born in $year <br>";}familyName("Li","1975");familyName("Hong","1978");familyName("Tao","1983");?>
默认参数值
下面的例子展示了如何使用默认参数。如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值:
<?phpfunction setHeight($minheight=50) { echo "The height is : $minheight <br>";}setHeight(350);setHeight(); // 将使用默认值 50setHeight(135);setHeight(80);?>
返回值
如需使函数返回值,请使用 return 语句:
<?phpfunction sum($x,$y) { $z=$x+$y; return $z;}echo "5 + 10 = " . sum(5,10) . "<br>";echo "7 + 13 = " . sum(7,13) . "<br>";echo "2 + 4 = " . sum(2,4);?>
数组
数组能够在单独的变量名中存储一个或多个值。
创建数组
在 PHP 中, array() 函数用于创建数组:
array();
在 PHP 中,有三种数组类型:
索引数组 - 带有数字索引的数组
关联数组 - 带有指定键的数组
多维数组 - 包含一个或多个数组的数组
索引数组
有两种创建索引数组的方法:
索引是自动分配的(索引从 0 开始):
<?php$cars=array("Volvo","BMW","SAAB");echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";?>
获得数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素数):
<?php$cars=array("Volvo","BMW","SAAB");echo count($cars);?>
遍历索引数组
如需遍历并输出索引数组的所有值,您可以使用 for 循环,就像这样:
<?php$cars=array("Volvo","BMW","SAAB");$arrlength=count($cars);for($x=0;$x<$arrlength;$x++) { echo $cars[$x]; echo "<br>";}?>
关联数组
关联数组是使用您分配给数组的指定键的数组。
有两种创建关联数组的方法:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");或者$age['Peter']="35";$age['Ben']="37";$age['Joe']="43";
随后可以在脚本中使用指定键:
<?php$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");echo "Peter is " . $age['Peter'] . " years old.";?>
遍历关联数组
如需遍历并输出关联数组的所有值,您可以使用 foreach 循环,就像这样:
<?php$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>";}?>
数组的排序函数
在本节中,我们将学习如下 PHP 数组排序函数:
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
<?php$cars=array("Volvo","BMW","SAAB");sort($cars);$numbers=array(3,5,1,22,11);sort($numbers);?>
超全局变量
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
这些超全局变量是:
$GLOBALS$_SERVER$_REQUEST$_POST$_GET$_FILES$_ENV$_COOKIE$_SESSION
本节会介绍一些超全局变量,并会在稍后的章节讲解其他的超全局变量。 $GLOBALS
— 引用全局作用域中可用的全部变量 $GLOBALS
这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
PHP 在名为 $GLOBALS[index]
的数组中存储了所有全局变量。变量的名字就是数组的键。
下面的例子展示了如何使用超级全局变量 $GLOBALS
:
<?php $x = 75; $y = 25;function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; }addition(); echo $z; ?>
在上面的例子中,由于 z 是 $GLOBALS
数组中的变量,因此在函数之外也可以访问它。
$_SERVER
$_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'];?>
下表列出了您能够在 $_SERVER 中访问的最重要的元素:
$_SERVER['PHP_SELF'] 返回当前执行脚本的文件名。$_SERVER['GATEWAY_INTERFACE'] 返回服务器使用的 CGI 规范的版本。$_SERVER['SERVER_ADDR'] 返回当前运行脚本所在的服务器的 IP 地址。$_SERVER['SERVER_NAME'] 返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。$_SERVER['SERVER_SOFTWARE'] 返回服务器标识字符串(比如 Apache/2.2.24)。$_SERVER['SERVER_PROTOCOL'] 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。$_SERVER['REQUEST_METHOD'] 返回访问页面使用的请求方法(例如 POST)。$_SERVER['REQUEST_TIME'] 返回请求开始时的时间戳(例如 1577687494)。$_SERVER['QUERY_STRING'] 返回查询字符串,如果是通过查询字符串访问此页面。$_SERVER['HTTP_ACCEPT'] 返回来自当前请求的请求头。$_SERVER['HTTP_ACCEPT_CHARSET'] 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)$_SERVER['HTTP_HOST'] 返回来自当前请求的 Host 头。$_SERVER['HTTP_REFERER'] 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。$_SERVER['HTTPS'] 是否通过安全 HTTP 协议查询脚本。$_SERVER['REMOTE_ADDR'] 返回浏览当前页面的用户的 IP 地址。$_SERVER['REMOTE_HOST'] 返回浏览当前页面的用户的主机名。$_SERVER['REMOTE_PORT'] 返回用户机器上连接到 Web 服务器所使用的端口号。$_SERVER['SCRIPT_FILENAME'] 返回当前执行脚本的绝对路径。$_SERVER['SERVER_ADMIN'] 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。$_SERVER['SERVER_PORT'] Web 服务器使用的端口。默认值为 “80”。$_SERVER['SERVER_SIGNATURE'] 返回服务器版本和虚拟主机名。$_SERVER['PATH_TRANSLATED'] 当前脚本所在文件系统(非文档根目录)的基本路径。$_SERVER['SCRIPT_NAME'] 返回当前脚本的路径。$_SERVER['SCRIPT_URI'] 返回当前页面的 URI。
$_REQUEST
$_REQUEST
用于收集 HTML 表单提交的数据。
下面的例子展示了一个包含输入字段及提交按钮的表单。当用户通过点击提交按钮来提交表单数据时, 表单数据将发送到 <form>
标签的 action 属性中指定的脚本文件。在这个例子中,我们指定文件本身来处理表单数据。如果您需要使用其他的 PHP 文件来处理表单数据,请修改为您选择的文件名即可。然后,我们可以使用超级全局变量 $_REQUEST
来收集 input 字段的值:
<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>
$_POST
$_POST
广泛用于收集提交 method="post"
的 HTML 表单后的表单数据。$_POST
也常用于传递变量。
下面的例子展示了一个包含输入字段和提交按钮的表单。当用户点击提交按钮来提交数据后,表单数据会发送到 <form>
标签的 action 属性中指定的文件。在本例中,我们指定文件本身来处理表单数据。如果您希望使用另一个 PHP 页面来处理表单数据,请用更改为您选择的文件名。然后,我们可以使用超全局变量 $_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>
$_GET
$_GET
也可用于收集提交 HTML 表单 (method="get")
之后的表单数据。 $_GET
也可以收集 URL 中的发送的数据。
假设我们有一张页面含有带参数的超链接:
<html><body><a href="test_get.php?subject=PHP&web=W3school.com.cn">测试 $GET</a></body></html>
当用户点击链接 "Test $GET"
,参数 “subject” 和 “web” 被发送到 “test_get.php”,然后您就能够通过 $_GET
在 “test_get.php” 中访问这些值了。
下面的例子是 “test_get.php” 中的代码:
<html><body><?php echo "Study " . $_GET['subject'] . " at " . $_GET['web'];?></body></html>
- PHP学习笔记2-基础知识
- PHP基础知识学习笔记
- PHP学习笔记1-基础知识
- php学习--2 基础知识
- PHP学习笔记(一)基础知识
- PHP学习笔记(二)基础知识结束
- PHP学习笔记(1)--基础知识篇
- PHP基础知识部分-个人学习笔记
- PHP语言基础知识(学习笔记)
- java基础知识学习笔记2
- Java学习笔记:基础知识2
- 汇编学习笔记---(2)基础知识
- php基础知识笔记
- php基础知识笔记 一
- php基础知识笔记
- php基础知识笔记
- PHP学习笔记1:基础知识及WAMPServer自定义网站根目录
- php基础知识学习
- PHP学习笔记1-基础知识
- IS 函数判断变量类型
- iOS 缓存机制
- BMP 转 YUV (BMP2YUV)
- js 集合去重,交集,并集,差集
- PHP学习笔记2-基础知识
- 前端优化的小结
- 【SDOI2013】项链
- PHP学习笔记3-表单
- jsp页面传递数组参数到后台
- BMP 转 YUV (BMP2YUV)+ YUV 转RGB
- java io流
- hdu 1864 最大报销额
- KVC,KVO,NSNotification总结