您的位置:首页 > 编程语言 > PHP开发

PHP 学习笔记(一):基础教程:语法,变量,函数,数组,超全局

2016-09-24 13:37 1031 查看

PHP简介

PHP 脚本在服务器上执行

什么是 PHP 文件

PHP 文件能够包含文本、HTML、CSS 以及 PHP 代码

PHP 代码在服务器上执行,而结果以纯文本返回浏览器

PHP 文件的后缀是 “.php”

PHP能够做什么

PHP 能够生成动态页面内容

PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件

PHP 能够接收表单数据

PHP 能够发送并取回 cookies

PHP 能够添加、删除、修改数据库中的数据

PHP 能够限制用户访问网站中的某些页面

PHP 能够对数据进行加密

通过 PHP,您可以不受限于只输出 HTML。您还能够输出图像、PDF 文件、甚至 Flash 影片。您也可以输出任何文本,比如 XHTML 和 XML。

为什么使用 PHP

PHP 运行于各种平台(Windows, Linux, Unix, Mac OS X 等等)

PHP 兼容几乎所有服务器(Apache, IIS 等等)

PHP 支持多种数据库

PHP 是免费的。请从官方 PHP 资源下载:www.php.net

PHP 易于学习,并可高效地运行在服务器端

PHP语法

基础PHP语法

PHP 脚本可放置于文档中的任何位置。

PHP 脚本以

<?php
// 此处是 PHP 代码
?>


PHP 语句以分号结尾(;)。PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)。

PHP 中的注释

PHP 代码中的注释不会被作为程序来读取和执行。它唯一的作用是供代码编辑者阅读。

PHP支持三种注释

单行注释 //

单行注释 #

多行注释 /**/

<!DOCTYPE html>
<html>
<body>

<?php
// 这是单行注释

# 这也是单行注释

/*
这是多行注释块
它横跨了
多行
*/
?>

</body>
</html>


PHP中的大小写敏感问题

在 PHP 中,所有用户定义的函数关键词(例如 if、else、echo 等等)都对大小写不敏感

不过在 PHP 中,所有变量都对大小写敏感

PHP变量

变量以 $ 符号开头,其后是变量的名称

变量名称必须以字母或下划线开头

变量名称不能以数字开头

变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)

变量名称对大小写敏感(y与Y 是两个不同的变量)

创建 PHP 变量

PHP 没有创建变量的命令。

变量会在首次为其赋值时被创建(意思就是不给其赋值的时,即没被创建):

<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>


PHP 变量作用域

在 PHP 中,可以在脚本的任意位置对变量进行声明。

变量的作用域指的是变量能够被引用/使用的那部分脚本。

PHP 有三种不同的变量作用域:

local(局部)

global(全局)

static(静态)

Local 和 Global 作用域

函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。

函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。

下面的例子测试了带有局部和全局作用域的变量:

<?php
$x=5; // 全局作用域

function myTest() {
$y=10; // 局部作用域
echo "<p>测试函数内部的变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$x";
}

myTest();

echo "<p>测试函数之外的变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$x";
?>




PHP global 关键词

global 关键词用于访问函数内的全局变量。

要做到这一点,请在(函数内部)变量前面使用 global 关键词

<?php
$x=5;
$y=10;

function myTest() {
global $x,$y;
$y=$x+$y;
}

myTest();
echo $y; // 输出 15
?>


PHP static 关键词

通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作

要完成这一点,请在您首次声明变量时使用 static 关键词

<?php

function myTest() {
static $x=0;
echo $x;
$x++;
}

myTest();
myTest();
myTest();

?>


然后,每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息

PHP 5 echo 和 print 语句

echo 和 print 之间的差异:

echo - 能够输出一个以上的字符串

print - 只能输出一个字符串,并始终返回 1

提示:echo 比 print 稍快,因为它不返回任何值。

PHP echo 语句

echo 是一个语言结构,有无括号均可使用:echo 或 echo()。

PHP print 语句

print 也是语言结构,有无括号均可使用:print 或 print()。

PHP数据类型

字符串、整数、浮点数、逻辑、数组、对象、NULL。

PHP 字符串

字符串是字符序列,比如 “Hello world!”。

字符串可以是引号内的任何文本。您可以使用单引号或双引号:

PHP 整数

整数是没有小数的数字。

PHP 浮点数

浮点数是有小数点或指数形式的数字。

在下面的例子中,我们将测试不同的数字。PHP var_dump() 会返回变量的数据类型和值

PHP 逻辑

逻辑是 true 或 false。

PHP 数组

数组在一个变量中存储多个值。

PHP 对象

对象是存储数据和有关如何处理数据的信息的数据类型。

在 PHP 中,必须明确地声明对象。

首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。

然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:

<?php
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>


PHP 字符串函数

PHP strlen() 函数

strlen() 函数返回字符串的长度,以字符计。

下例返回字符串 “Hello world!” 的长度:

<?php
echo strlen("Hello world!");
?>


PHP strpos() 函数

strpos() 函数用于检索字符串内指定的字符或文本。

如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。

下例检索字符串 “Hello world!” 中的文本 “world”:

<?php
echo strpos("Hello world!","world");
?>


以上代码的输出是:6。

提示:上例中字符串 “world” 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。

PHP 常量

常量是单个值的标识符(名称)。在脚本中无法改变该值。

有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。

设置 PHP 常量

如需设置常量,请使用 define() 函数 - 它使用三个参数:

首个参数定义常量的名称

第二个参数定义常量的值

可选的第三个参数规定常量名是否对大小写敏感。默认是 false。

下例创建了一个对大小写敏感的常量,值为 “Welcome to W3School.com.cn!”:

<?php
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
?>


下例创建了一个对大小写不敏感的常量,值为 “Welcome to W3School.com.cn!”:

<?php
define("GREETING", "Welcome to W3School.com.cn!", true);
echo greeting;
?>


PHP 运算符

PHP 算数运算符



PHP 赋值运算符

PHP 赋值运算符用于向变量写值。

PHP 中基础的赋值运算符是 “=”。这意味着右侧赋值表达式会为左侧运算数设置值。



PHP 字符串运算符



PHP 递增/递减运算符



PHP 比较运算符

PHP 比较运算符用于比较两个值(数字或字符串):



PHP 逻辑运算符



PHP 数组运算符

PHP 数组运算符用于比较数组:



PHP 条件语句

在 PHP 中,我们可以使用以下条件语句:

if 语句 - 如果指定条件为真,则执行代码

if…else 语句 - 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码

if…elseif….else 语句 - 选择若干段代码块之一来执行

switch 语句 - 语句多个代码块之一来执行

PHP 循环语句

在 PHP 中,我们有以下循环语句:

while - 只要指定条件为真,则循环代码块

do…while - 先执行一次代码块,然后只要指定条件为真则重复循环

for - 循环代码块指定次数

foreach - 遍历数组中的每个元素并循环代码块

PHP函数

在 PHP 创建用户定义函数

用户定义的函数声明以关键字”function” 开头:

function functionName() {
被执行的代码;
}


PHP 函数参数

可以通过参数向函数传递信息。参数类似变量。

<?php
function familyName($fname) {
echo "$fname Zhang.<br>";
}

familyName("Li");
familyName("Hong");
familyName("Tao");
familyName("Xiao Mei");
familyName("Jian");
?>


PHP 默认参数值

下面的例子展示了如何使用默认参数。如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值:

<?php
function setHeight($minheight=50) {
echo "The height is : $minheight <br>";
}

setHeight(350);
setHeight(); // 将使用默认值 50
setHeight(135);
setHeight(80);
?>


PHP 函数 - 返回值

如需使函数返回值,请使用 return 语句

PHP数组

数组能够在单独的变量名中存储一个或多个值。

<?php
$cars=array("Volvo","BMW","SAAB");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>


在 PHP 中创建数组

在 PHP 中, array() 函数用于创建数组:

array();


PHP 索引数组

有两种创建索引数组的方法:

索引是自动分配的(索引从 0 开始):

$cars=array("Volvo","BMW","SAAB");


或者也可以手动分配索引:

$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="SAAB";


PHP 关联数组

关联数组是使用您分配给数组的指定键的数组。

有两种创建关联数组的方法:

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");


或者:

$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";


遍历关联数组

如需遍历并输出关联数组的所有值,您可以使用 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超全局

超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量

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;
?>


结果是:95

PHP $_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 中访问的最重要的元素:



PHP $_REQUEST

PHP $_REQUEST 用于收集 HTML 表单提交的数据

下面的例子展示了一个包含输入字段及提交按钮的表单。

当用户通过点击提交按钮来提交表单数据时, 表单数据将发送到 标签的 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>






PHP $_POST

PHP $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。


下面的例子展示了一个包含输入字段和提交按钮的表单。当用户点击提交按钮来提交数据后,表单数据会发送到 标签的 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>


运行结果和$_REQUEST相同

PHP $_GET

PHP GET也可用于收集提交HTML表单(method=”get”)之后的表单数据。_GET 也可以收集 URL 中的发送的数据。

<html>
<body>

<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>

</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐