php
基本语法
Copy <? php
// 此处是 PHP 代码
?>
Copy <! DOCTYPE html >
< html >
< body >
< h1 > 我的第一张 PHP 页面 </ h1 >
<? php
echo "Hello World!" ;
?>
</ body >
</ html >
PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码。
注释
Copy <? php
// 这是单行注释
# 这也是单行注释
/*
这是多行注释块
它横跨了
多行
*/
?>
变量
变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
PHP 有三种不同的变量作用域:
Local 和 Global 作用域
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
Copy <? php
$x = 5 ; // global scope
function myTest () {
$y = 10 ; // local scope
echo "<p>在函数内部测试变量:</p>" ;
echo "变量 x 是:$x" ;
echo "<br>" ;
echo "变量 y 是:$y" ;
}
myTest () ;
echo "<p>在函数之外测试变量:</p>" ;
echo "变量 x 是:$x" ;
echo "<br>" ;
echo "变量 y 是:$y" ;
?>
//输出
//
/*
在函数内部测试变量:
变量 x 是:
变量 y 是:10
在函数之外测试变量:
变量 x 是:5
变量 y 是:
*/
函数内访问全局变量
Copy function myTest () {
global $x , $y;
$y = $x + $y;
}
//or
function myTest () {
$GLOBALS[ 'y' ] = $GLOBALS[ 'x' ] + $GLOBALS[ 'y' ];
}
静态变量
通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。 要完成这一点,请在您首次声明变量时使用 static 关键词:
Copy <? php
function myTest () {
static $x = 0 ;
echo $x;
$x ++ ;
}
myTest () ;
myTest () ;
myTest () ;
?>
//输出:
0
1
2
3
4
PHP echo 和 print 语句
print - 只能输出一个字符串,并始终返回 1
两者是语言结构,有没有括号均可以使用。
PHP 数据类型
字符串、整数、浮点数、逻辑、数组、对象、NULL。
PHP 字符串函数
strlen() 函数返回字符串的长度,以字符计。
Copy <? php
echo strlen ( "Hello world!" ) ;
?>
//12
strpos() 函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
Copy <? php
echo strpos ( "Hello world!" , "world" ) ;
?>
//6
PHP 常量
常量是单个值的标识符(名称)。在脚本中无法改变该值。
define() 函数 - 它使用三个参数:
可选的第三个参数规定常量名 是否对大小写敏感。默认是 false。
Copy <? php
define ( "GREETING" , "Welcome to W3School.com.cn!" ) ;
echo GREETING;
?>
PHP 字符串运算符
Copy <? php
$a = "Hello" ;
$b = $a . " world!" ; //串接
echo $b; // 输出 Hello world!
$x = "Hello" ;
$x .= " world!" ; // 串接赋值
echo $x; // 输出 Hello world!
?>
PHP 循环
do...while - 先执行一次代码块,然后只要指定条件为真则重复循环
foreach - 遍历数组中的每个元素并循环代码块
如果您已经提前确定脚本运行的次数,可以使用 for 循环。
Copy <? php
for ($x = 0 ; $x <= 10 ; $x ++ ) {
echo "数字是:$x <br>" ;
}
?>
foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。
Copy <? php
$colors = array ( "red" , "green" , "blue" , "yellow" );
foreach ($colors as $value) {
echo "$value <br>" ;
}
?>
PHP 函数
创建
Copy <? php
function writeMsg () {
echo "Hello world!" ;
}
writeMsg () ; // 调用函数
?>
参数
Copy <? php
function setHeight ($minheight = 50 ) {
echo "The height is : $minheight <br>" ;
}
setHeight ( 350 ) ;
setHeight () ; // 将使用默认值 50,如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值
setHeight ( 135 ) ;
setHeight ( 80 ) ;
?>
数组
Copy <? php
$cars = array ( "Volvo" , "BMW" , "SAAB" );
echo "I like " . $cars[ 0 ] . ", " . $cars[ 1 ] . " and " . $cars[ 2 ] . "." ;
?>
三种数组类型:
Copy //索引是自动分配的(索引从 0 开始):
$cars = array ( "Volvo" , "BMW" , "SAAB" );
//or
$cars[ 0 ] = "Volvo" ;
$cars[ 1 ] = "BMW" ;
$cars[ 2 ] = "SAAB" ;
//遍历数组
<? php
$cars = array ( "Volvo" , "BMW" , "SAAB" );
$arrlength = count ( $cars ) ; //获取数组长度
for ($x = 0 ;$x < $arrlength;$x ++ ) {
echo $cars[$x];
echo "<br>" ;
}
?>
关联数组是使用您分配给数组的指定键的数组。
Copy $age = array ( "Peter" => "35" , "Ben" => "37" , "Joe" => "43" );
//或者:
$age[ 'Peter' ] = "35" ;
$age[ 'Ben' ] = "37" ;
$age[ 'Joe' ] = "43" ;
PHP - 数组的排序函数
按照字母升序对数组 $cars 中的元素进行排序:
Copy <? php
$cars = array ( "Volvo" , "BMW" , "SAAB" );
sort ( $cars ) ;
?>
按照数字升序对数组 $numbers 中的元素进行排序:
Copy <? php
$numbers = array ( 3 , 5 , 1 , 22 , 11 );
sort ( $numbers ) ;
?>
类似sort();
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
超全局变量 PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。