PHP语法

PHP环境一键搭建工具

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条件详细语法参考地址1 地址2

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>

如下:

参考网址

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值