PHP标记:
PHP解析文件是以下面三种方式作为起始和结束标记:
1.<?php 代码 ?>
2.<? 代码 ?>
3.<script language="php"> 代码 </script>
多用第1种和第3种方式,它们之间的是需要解析的代码,这种解析方式可让PHP能被嵌入到不同文档中,而在起始和结束标记之外的代码会被PHP解析器忽略。
这里要注意的是:若是使用第1种方式,紧随"<?php"后面的必须是空格\t,或是换行符\n,或是回车\r,或是空字符串\s,而不能类似:<?php代码?>,否则会解析失败。
注释:
1.单行注释可使用 "//"或"#":
<?php
// 代码
?>
或
<?php
#代码
?>
2.多行注释可使用起始/*和结束*/,这里注意注释在碰到第一个*/时就会结束,所以要确保不会嵌套
比如:
<?php
/*
代码; /*此处代码注释碰到第一个结束标记了*/
*/
?>
这是一个好的注释风格:
<?php
//======================================================================
// CATEGORY LARGE FONT
//======================================================================
//-----------------------------------------------------
// Sub-Category Smaller Font
//-----------------------------------------------------
/* Title Here Notice the First Letters are Capitalized */
# Option 1
# Option 2
# Option 3
/*
* This is a detailed explanation
* of something that should require
* several paragraphs of information.
*/
// This is a single line quote.
?>
PHP变量:
变量是用于存储信息的容器,$取值:
如下所示:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP变量
//===================================
$x=1;
$y=9;
$z=$x+$y;
echo $z;
?>
</body>
</html>
如下:
声明PHP变量,当赋一个文本值给变量时,两侧需加上引号:
</head>
<body>
<?php
//===================================
// PHP变量
//===================================
//-----------------------------------
// PHP变量规则
//-----------------------------------
/*
* 变量以$符号开始,后面跟着变量名称
* 变量名必须以字母或下划线字符开始
* 变量名只能包含字母数字字符以及下划线(A-z,0-9和_)
* 变量名不能包含空格
* PHP语句和PHP变量名都区分大小写
*/
$txt="Hello world!";
$x=2;
$y=9;
$z=$x+$y;
echo $z;
echo "<br>";
echo $txt;
?>
</body>
</html>
如下:
PHP是弱类型语言,创建变量时不必向变量声明数据类型。PHP会根据变量的值自动把变量转换为正确的数据类型,而在强类型编程语言中,必须在使用变量前声明变量的类型和名称。
PHP变量作用域:
变量作用域表示脚本中变量可被引用/使用的部分,它有四种不同变量作用域:
1.local 2.gobal 3.static 4.parameter
在所有函数外部定义的变量具有全局作用域,除函数外,全局变量可被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用gobal关键字。在PHP函数内部声明的变量是局部变量,仅能在函数内部访问。
实例:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP作用域
//===================================
//-----------------------------------
// PHP作用域规则
//-----------------------------------
/*
* 关键字global声明的变量为全局变量,可被脚本中任何部分访问
* 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";
?>
</body>
</html>
如下:
global关键字:
global关键字用于函数内访问全局变量,在函数内调用函数外定义的全局变量,需要在函数中的变量前加上global关键字
实例:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP作用域
//===================================
//-----------------------------------
// PHP作用域规则
//-----------------------------------
/*
* 关键字global声明的变量为全局变量,可被脚本中任何部分访问
* PHP函数内部声明的变量为局部变量,仅能在函数内部访问
* 要在函数内访问函数外定义的全局变量,需在前加上global关键字
*/
$x=5; // 全局变量
$y=10;
function myTest()
{
global $x, $y; // 前加关键字global
$y = $x + $y;
}
myTest();
echo $y;
?>
</body>
</html>
如下:
PHP将所有全局变量存储在一个名为$GLOBALS[index]的数组中,index保存变量的名称,这个数组可在函数内部访问,也可直接用来更新全局变量。
实例:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP作用域
//===================================
//-----------------------------------
// PHP作用域规则
//-----------------------------------
/*
* 关键字global声明的变量为全局变量,可被脚本中任何部分访问
* PHP函数内部声明的变量为局部变量,仅能在函数内部访问
* 可直接通过全局变量$GLOBALS[index]数组访问声明的变量
*/
$x=5; // 全局变量
$y=11;
function myTest()
{ /*
global $x, $y; // 前加关键字global
$y = $x + $y;
*/
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y;
?>
</body>
</html>
如下:
static作用域:
可使用关键字static来声明一个不希望被删除的局部变量,通常,在函数完成时,它的所有变量都会被删除。
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP作用域
//===================================
//-----------------------------------
// PHP作用域规则
//-----------------------------------
/*
* 关键字global声明的变量为全局变量,可被脚本中任何部分访问
* PHP函数内部声明的变量为局部变量,仅能在函数内部访问
* 当一个函数完成时,所有变量通常都会被删除,当不希望被删除时,使用static关键字
*/
function myTest()
{
static $x = 0;
echo $x;
$x++;
echo "<br>";
}
myTest();
myTest();
myTest();
?>
</body>
</html>
如下:
每次调用该函数时,该变量都将会保留着函数前一次被调用时的值,该变量仍然是局部变量,局部可见性,全局生命周期。
参数作用域:
参数是通过调用代码将值传递给函数的局部变量,参数是在参数列表中声明的,作为函数声明的一部分。
参考网址
PHP数组:
数组能够在单个变量中存储多个值:
实例
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP数组
//===================================
//-----------------------------------
// PHP数组定义
//-----------------------------------
/*
* 数组能够在当个变量中存储多个值
*/
$cars=array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " .$cars[2] . ".";
?>
</body>
</html>
如下:
在PHP中使用array()函数创建数组,在PHP中有三种类型的数组:
1.数值数组- 带有数字ID键的数组
2.关联数组 - 带有指定的键的数组,每个键关联一个值
3.多维数组 - 包含一个或多个数组的数组
1.数值数组:
有两种创建数值数字的方法:
一是自动分配ID键,ID键总是从0开始的:
$cars = array("Volvo", "BMW", "Toyota");
二是手动分配ID键:
$cars[0] = "Volvo";
$cars[1] = "BMW";
$cars[2] = "Toyota";
获取数组长度的函数-count()函数
count()函数返回数组的长度,元素的数量:
实例
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP数组
//===================================
//-----------------------------------
// PHP数组定义
//-----------------------------------
/*
* 数组能够在单个变量中存储多个值
* 获取数组的长度count()函数
*/
$cars=array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " .$cars[2] . ".";
echo "<br>";
echo "长度为: " .count($cars);
?>
</body>
</html>
如下:
遍历数值数组:
遍历并打印数值数组中的所有值,可使用for循环:
如下:
<body>
<?php
//===================================
// PHP数组
//===================================
//-----------------------------------
// PHP数组定义
//-----------------------------------
/*
* 循环遍历数值数组
*/
$cars=array("Volvo", "BMW", "Toyota");
$arrlength=count($cars);
for($x=0; $x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
?>
</body>
</html>
如下
PHP关联数组
关联数组就是使用分配给数组的指定的键的数组,这里有两种创建关联数组的方法:
一是:
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"==>"43");
二是:
$age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "43";
随后在脚本中使用指定的键:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP数组
//===================================
//-----------------------------------
// PHP数组定义
//-----------------------------------
/*
* 在脚本中定义使用关联数组
*/
$ages=array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
echo "Peter is " . $ages['Peter'] . " years old.";
?>
</body>
</html>
如下
遍历关联数组:遍历并打印关联数组中的所有值,可使用foreach循环,如下:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP数组
//===================================
//-----------------------------------
// PHP数组定义
//-----------------------------------
/*
* 在脚本中定义遍历关联数组
*/
$ages=array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
foreach($ages as $x=>$x_value)
{
echo "Key= " . $x . ", Value= " . $x_value;
echo "<br>";
}
?>
</body>
</html>
如下:
多维数组:
多维数组是包含一个或多个数组的数组,在多维数组中,主数组的每一个元素也可以是一个数组,子数组中的每一个元素也可以是一个数组。
实例:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP数组
//===================================
//-----------------------------------
// PHP数组定义
//-----------------------------------
/*
* 在脚本中定义多维数组
*/
$sites=array
(
"php"=>array
(
"php中文网",
"http://www.php.cn"
),
"google"=>array
(
"Google 搜索",
"http://www.google.com"
),
"taobao"=>array
(
"淘宝",
"http://www.taobao.com"
)
);
print("<pre>"); // 格式化输出数组
print_r($sites);
print("</pre>");
?>
</body>
</html>
如下:
其中pre元素可定义预格式化的文本,被包围在pre元素中的文本通常会保留空格和换行符,而文本也会呈现等宽字体。<pre>的常见应用就是用来表示计算机的源代码。详情参考网址
要获取上面数组中的某个值,可添加如下一行获取第一个数组的值:
echo $sites['php'][0] . '地址为: ' . $sites['php'][0];
如下:
参考网址
PHP数组排序:
数组排序函数有如下六种:
1.sort() - 对数组进行升序排序
2.rsort() - 对数组进行降序排序
3.asort() - 根据关联数组的值,对数组进行升序排列
4.ksort() - 根据关联数组的键,对数组进行升序排列
5.arsort() - 根据关联数组的值,对数组进行降序排列
6.krsort() - 根据关联数组的键,对数组进项降序排列
sort() - 对数组进行升序排列
下面实例将$cars数组中的元素按照字母升序排列:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP数组
//===================================
//-----------------------------------
// PHP数组排序
//-----------------------------------
/*
* 函数对数组进行排序
*/
$cars=array("Volvo", "BMW", "Toyota");
sort($cars);
print_r($cars);
?>
</body>
</html>
如下
下面实例将$numbers数组中的元素按照数字升序排序:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP数组
//===================================
//-----------------------------------
// PHP数组排序
//-----------------------------------
/*
* 函数对数组进行排序
*/
$numbers=array(2, 6, 3, 51, 44);
sort($numbers);
print_r($numbers);
?>
</body>
</html>
如下:
rsort() - 对数组进行降序排列
下面实例将$numbers数组中的数字按照降序排列
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP数组
//===================================
//-----------------------------------
// PHP数组排序
//-----------------------------------
/*
* 函数对数组进行排序
*/
$numbers=array(2, 6, 3, 51, 44);
rsort($numbers);
print_r($numbers);
?>
</body>
</html>
如下
下面是将数组$cars中字母按照降序排列:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP数组
//===================================
//-----------------------------------
// PHP数组排序
//-----------------------------------
/*
* 函数对字母进行降序排序
*/
$cars=array("Volvo","BMW","Toyota");
rsort($cars);
print_r($cars);
?>
</body>
</html>
如下
asort() - 根据数组值对数组进行升序排列:
实例:
</head>
<body>
<?php
//===================================
// PHP数组
//===================================
//-----------------------------------
// PHP数组排序
//-----------------------------------
/*
* 根据数组值对数组进行升序排序
*/
$ages=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($ages);
print_r($ages);
?>
</body>
</html>
如下:
arsort() - 根据数组值,对数组进行降序排序:
将上面的asort改为arsort
如下
ksort() - 根据数组的键,对数组进行升序排序
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP数组
//===================================
//-----------------------------------
// PHP数组排序
//-----------------------------------
/*
* 根据数组键对数组进行升序排序
*/
$ages=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($ages);
print_r($ages);
?>
</body>
</html>
如下:
krsort() - 根据数组的键,对数组进行降序排序
将上面的ksort改为krsort,如下所示:
参考网址
PHP的超级全局变量:
在PHP 4.1.0后引入超级全局变量概念,是PHP系统自带的变量,在一个脚本的全部作用域中都可用。
其列表如下:
1.$GLOBALS:是一个超级全局变量组,它包含了全部变量的全局组合数组,变量名就是数组的键,实例:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP超级全局变量
//===================================
//-----------------------------------
// PHP超级全局变量GLOBALS
//-----------------------------------
/*
* PHP超级全局变量GLOBALS的使用
*/
$x = 55;
$y = 25;
function addition()
{
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
</body>
</html>
如下
2.$_SERVER:包含诸如头信息header,路径path,以及脚本位置script locations等信息的数组,该数组中的项目由Web服务器创建,不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或提供一些没有在这里列举中来的项目。
实例:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// PHP超级全局变量
//===================================
//-----------------------------------
// PHP超级全局变量_SERVER
//-----------------------------------
/*
* PHP超级全局变量_SERVER的使用
*/
echo 'PHP_SELF = ' . $_SERVER['PHP_SELF'];
echo "<br>";
echo 'SERVER_NAME = ' . $_SERVER['SERVER_NAME'];
echo "<br>";
echo 'HTTP_HOST = ' . $_SERVER['HTTP_HOST'];
echo "<br>";
if (isset($_SERVER['HTTP_REFERER'])) { #在Chrome内运行报错:Notice: Undefined index: HTTP_REFERER...,故加此判断
echo 'HTTP_REFERER = ' . $_SERVER['HTTP_REFERER'];
echo "<br>";
}
echo 'HTTP_USER_AGENT = ' . $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo 'SCRIPT_NAME = ' . $_SERVER['SCRIPT_NAME'];
?>
</body>
</html>
如下
下面列出$_SERVER变量中的所有重要元素:
3.$_REQUEST:用于收集HTML表单提交的数据:
以下实例显示了一个输入字段input以及提交按钮submit的表单form,当用户通过点击submit按钮提交表单数据时,表单数据将发送至<form>标签中action属性指定的脚本文件中,在此实例中,指定文件来处理表单数据,若希望其他PHP文件来处理该数据,也可修改该指定脚本文件名,之后,可使用超级全局变量$_REQUEST来收集表单中的input字段数据:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> //指定表单内容由test.php来处理
Name: <input type="text" name="fname"> //在fname输入框中输入文本内容
<input type="submit">
</form>
<?php
//===================================
// PHP超级全局变量
//===================================
//-----------------------------------
// PHP超级全局变量_REQUEST
//-----------------------------------
/*
* PHP超级全局变量_REQUEST的使用
*/
if (isset($_REQUEST['fname'])) {
$name = $_REQUEST['fname']; //收集表单提交的数据
echo $name; //回显表单的文本框内容
}
?>
</body>
</html>
如下:
4.$_POST:被广泛应用于收集表单数据,在HTML form标签指定该属性: method = "post"
以下实例显示一个输入字段input以及条件按钮submit的表单form,当用户通过点击submit按钮提交表单数据时,表单数据将发送至<form>标签中action属性中指定的脚本文件,在此实例中,指定文件来处理表单数据,若希望其他PHP文件来处理该数据,可修改指定的脚本文件名,后可使用超级全局变量$_POST来收集表单中的input字段数据:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
//===================================
// PHP超级全局变量
//===================================
//-----------------------------------
// PHP超级全局变量 _POST
//-----------------------------------
/*
* PHP超级全局变量 _POST 的使用
*/
if (isset($_POST['fname'])) {
$name = $_POST['fname'];
echo $name;
}
?>
</body>
</html>
如下
5.$_GET:同样被用于广泛收集表单数据,在HTML form标签的指定该属性: "method" = "get",$_GET也可收集URL中发送的数据。
参考网址
PHP表单:
当处理HTML表单时,PHP能把来自HTML页面中的表单元素自动变成可供PHP脚本使用。
实例:包含一个HTML表单,带俩个个输入框和一个提交按钮
form.html:
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<form action="test.php" method="post">
名字: <input type="text" name="fname">
年龄: <input type="text" name="age">
<input type="submit" value="提交">
</form>
</body>
</html>
test.html:
<html>
<head>
<meta charset="utf-8">
<title>PHP 测试</title>
</head>
<body>
欢迎 <?php echo $_POST["fname"]; ?>!<br>
您的年龄是 <?php echo $_POST["age"]; ?> 岁。
</body>
</html>
如下:
参考网址
从HTML中分离:
所有在开始和结束标记之外的内容会被PHP解析器忽略,这使得PHP文件可以混合内容,可使得PHP嵌入到HTML文档中。类似如下所示:
<p>这会被PHP所忽略同时也会在浏览器种显示出来</p>
<?php echo '这里会被php解析'; ?>
如下:
支持类似C语言的语法:
1.支持条件判断来决定哪些输出和哪些跳过,如下:
实例#1:使用条件的高级分离术
<?php if ($expression == true): ?>
若条件为true这里会显示
<?php else: ?>
否则会显示这里
<?php endif; ?>
如下:
PHP日期date函数参考地址
2.for循环语句:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//-----------------------------------
// 循环测试
//-----------------------------------
/*循环for测试*/
/*
*循环输出Hello world! 5次
*/
for ($i = 0; $i < 5; ++$i): ?>
Hello world!
<br>
<?php endfor; ?>
</body>
</html>
如下:
参考网址
3.switch语句
switch语句根据多个不同条件执行不同动作
示例代码:
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// Switch测试
//===================================
//-----------------------------------
// 跳转语法
//-----------------------------------
/*
* switch (n)
* {
* case label1:
* 如果 n=label1,此处代码将执行;
* break;
* case label2:
* 如果 n=label2,此处代码将执行;
* break;
* default:
* 如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
* }
*/
//-----------------------------------
// 实例验证
//-----------------------------------
/*跳转switch验证*/
/*
*根据条件跳转输出所喜欢的颜色
*/
$favcolor="blue";
switch ($favcolor)
{
case "red":
echo "喜欢红色!";
break;
case "blue":
echo "喜欢蓝色!";
break;
case "green":
echo "喜欢绿色!";
break;
default:
echo "红绿蓝色都不喜欢!";
}
?>
</body>
</html>
如下:
参考网址
4.while循环
while循环将重复执行代码块,直到指定条件不成立为止。
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
//===================================
// while测试
//===================================
//-----------------------------------
// while语法
//-----------------------------------
/*
* while (条件)
* {
* 要执行的代码;
* }
*/
//-----------------------------------
// 实例验证
//-----------------------------------
/*while验证*/
/*
*根据i值小于或等于5条件,循环运行代码使得i自加1
*/
$i=1;
while($i<=5)
{
echo "The number is " . $i . "<br>";
$i++;
}
?>
</body>
</html>
如下:
参考网址