PHP 脚本在服务器上执行。
通过 PHP,您可以不受限于只输出 HTML。您还能够输出图像、PDF 文件、甚至 Flash 影片。您也可以输出任何文本,比如 XHTML 和 XML。
PHP 脚本可放置于文档中的任何位置。
PHP 脚本以
<?php// 此处是 PHP 代码?>
PHP 语句以分号结尾(;)。PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)。
PHP 代码中的注释不会被作为程序来读取和执行。它唯一的作用是供代码编辑者阅读。
PHP支持三种注释
单行注释 // 单行注释 # 多行注释 /**/<!DOCTYPE html><html><body><?php// 这是单行注释# 这也是单行注释/*这是多行注释块它横跨了多行*/?></body></html>
在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。
不过在 PHP 中,所有变量都对大小写敏感。
PHP 没有创建变量的命令。
变量会在首次为其赋值时被创建(意思就是不给其赋值的时,即没被创建):
<?php$txt='Hello world!';$x=5;$y=10.5;?>
在 PHP 中,可以在脚本的任意位置对变量进行声明。
变量的作用域指的是变量能够被引用/使用的那部分脚本。
PHP 有三种不同的变量作用域:
local(局部) global(全局) static(静态)函数之外声明的变量拥有 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';?>
global 关键词用于访问函数内的全局变量。
要做到这一点,请在(函数内部)变量前面使用 global 关键词:
<?php$x=5;$y=10;function myTest() { global $x,$y; $y=$x+$y;}myTest();echo $y; // 输出 15?>
通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
要完成这一点,请在您首次声明变量时使用 static 关键词:
<?phpfunction myTest() { static $x=0; echo $x; $x++;}myTest();myTest();myTest();?>
然后,每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。
echo 和 print 之间的差异:
echo - 能够输出一个以上的字符串 print - 只能输出一个字符串,并始终返回 1提示:echo 比 print 稍快,因为它不返回任何值。
echo 是一个语言结构,有无括号均可使用:echo 或 echo()。
print 也是语言结构,有无括号均可使用:print 或 print()。
字符串、整数、浮点数、逻辑、数组、对象、NULL。
字符串是字符序列,比如 “Hello world!”。
字符串可以是引号内的任何文本。您可以使用单引号或双引号:
整数是没有小数的数字。
浮点数是有小数点或指数形式的数字。
在下面的例子中,我们将测试不同的数字。PHP var_dump() 会返回变量的数据类型和值
逻辑是 true 或 false。
数组在一个变量中存储多个值。
对象是存储数据和有关如何处理数据的信息的数据类型。
在 PHP 中,必须明确地声明对象。
首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:
<?phpclass Car{ var $color; function Car($color='green') { $this->color = $color; } function what_color() { return $this->color; }}?>
strlen() 函数返回字符串的长度,以字符计。
下例返回字符串 “Hello world!” 的长度:
<?phpecho strlen('Hello world!');?>
strpos() 函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
下例检索字符串 “Hello world!” 中的文本 “world”:
<?phpecho strpos('Hello world!','world');?>
以上代码的输出是:6。
提示:上例中字符串 “world” 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。
常量是单个值的标识符(名称)。在脚本中无法改变该值。
有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
如需设置常量,请使用 define() 函数 - 它使用三个参数:
首个参数定义常量的名称 第二个参数定义常量的值 可选的第三个参数规定常量名是否对大小写敏感。默认是 false。下例创建了一个对大小写敏感的常量,值为 “Welcome to W3School.com.cn!”:
<?phpdefine('GREETING', 'Welcome to W3School.com.cn!');echo GREETING;?>
下例创建了一个对大小写不敏感的常量,值为 “Welcome to W3School.com.cn!”:
<?phpdefine('GREETING', 'Welcome to W3School.com.cn!', true);echo greeting;?>
PHP 赋值运算符用于向变量写值。
PHP 中基础的赋值运算符是 “=”。这意味着右侧赋值表达式会为左侧运算数设置值。
PHP 比较运算符用于比较两个值(数字或字符串):
PHP 数组运算符用于比较数组:
在 PHP 中,我们可以使用以下条件语句:
if 语句 - 如果指定条件为真,则执行代码
if…else 语句 - 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
if…elseif….else 语句 - 选择若干段代码块之一来执行
switch 语句 - 语句多个代码块之一来执行
在 PHP 中,我们有以下循环语句:
while - 只要指定条件为真,则循环代码块
do…while - 先执行一次代码块,然后只要指定条件为真则重复循环
for - 循环代码块指定次数
foreach - 遍历数组中的每个元素并循环代码块
用户定义的函数声明以关键字”function” 开头:
function functionName() { 被执行的代码;}
可以通过参数向函数传递信息。参数类似变量。
<?phpfunction familyName($fname) { echo '$fname Zhang.<br>';}familyName('Li');familyName('Hong');familyName('Tao');familyName('Xiao Mei');familyName('Jian');?>
下面的例子展示了如何使用默认参数。如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值:
<?phpfunction setHeight($minheight=50) { echo 'The height is : $minheight <br>';}setHeight(350);setHeight(); // 将使用默认值 50setHeight(135);setHeight(80);?>
如需使函数返回值,请使用 return 语句
数组能够在单独的变量名中存储一个或多个值。
<?php$cars=array('Volvo','BMW','SAAB');echo 'I like ' . $cars[0] . ', ' . $cars[1] . ' and ' . $cars[2] . '.';?>
在 PHP 中, array() 函数用于创建数组:
array();
有两种创建索引数组的方法:
索引是自动分配的(索引从 0 开始):
$cars=array('Volvo','BMW','SAAB');
或者也可以手动分配索引:
$cars[0]='Volvo';$cars[1]='BMW';$cars[2]='SAAB';
关联数组是使用您分配给数组的指定键的数组。
有两种创建关联数组的方法:
$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>';}?>
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量。
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
这些超全局变量是:
$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
下面的例子展示了如何使用超级全局变量 $GLOBALS:
<?php $x = 75; $y = 25;function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; }addition(); echo $z; ?>
结果是:95
$_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 用于收集 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 广泛用于收集提交 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
<html><body><?php echo 'Study ' . $_GET['subject'] . ' at ' . $_GET['web'];?></body></html>PHP编程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答