PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器。
基本的 PHP 语法
PHP 脚本可以放在文档中的任何位置。
PHP 脚本以 尖括号、问号、PHP<?php 开始,以 ?> 问号、尖括号结束:
<?php
//这里是我们要写的PHP代码
?>
PHP 文件的默认文件扩展名是 ".php"。
PHP 文件通常包含 HTML 标签和一些 PHP 脚本代码。
echo 显示命令
echo 是在PHP里面最常用的一个输出、显示功能的命令。
我们可以让他显示任何可见的字符。
注意事项:
php的代码部份全部要用半角的英文、很多人容易写成全角的英文和符号造成PHP代码报错。
PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
PHP代码的最后一行可以加也可不加分号。
单行注释(只注释一行)
// 双斜杠表示单行注释 有时也用 # 表示 但用的比较少,多用 //
多行注释(注释多行)
以 /* 开始 */结束 代表多行注释
<!DOCTYPE html> <html> <body> <?php echo "Hello World!"; //注释语句 /* 多行注释语句 */ ?> </body> </html>
变量是用于存储信息的"容器":
PHP 变量
我们在PHP中的变量也是如此。不过有几个特点:
1. 必须要以$开始。如变量x必须要写成$x
2. 变量的首字母不能以数字开始
3. 变量的名字区分大小写
4. 变量不要用特殊符号、中文,_不算特殊符号
5. 变量命名要有意义(别写xxx,aaa,ccc这种 变量名)
6. $ 叫作美元符,英文单词:dollar。PHP的变量必须以美元符开始。说明搞PHP有“钱”图
创建(声明)PHP 变量
PHP 没有声明变量的命令。
变量在您第一次赋值给它的时候被创建:
<?php $txt="Hello world!"; $x=5; $y=10.5; ?>
PHP 是一门弱类型语言
在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。
PHP 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分。
PHP 有四种不同的变量作用域:
· local
· global
· static
· parameter
局部和全局作用域局部和全局作用域(loacal global)
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。 在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
<?php header("Content-type:text/html;charset=utf-8"); $x=5; // 全局变量 function myTest() { $y=10; // 局部变量 echo "<p>测试函数内变量:<p>"; echo "变量 x 为: $x"; //输出错误 Notice: Undefined variable: echo "<br>"; echo "变量 y 为: $y"; } myTest(); echo "<p>测试函数外变量:<p>"; echo "变量 x 为: $x"; echo "<br>"; echo "变量 y 为: $y"; //输出错误 Notice: Undefined variable:
当我们调用myTest()函数并输出两个变量的值, 函数将会输出局部变量 $y 的值,但是不能输出 $x 的值,因为 $x 变量在函数外定
义,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global 关键字。
然后我们在myTest()函数外输出两个变量的值,函数将会输出全局部变量 $x 的值,但是不能输出 $y 的值,因为 $y 变量在函数中
定义,属于局部变量。
PHP global 关键字
global 关键字用于函数内访问全局变量。
实例
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
<?php $x=10; $y=20; function test(){ global $x,$y; //使用global关键字 $y=$x+$y; } test(); echo $y;//输出30
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也
可以直接用来更新全局变量。
<?php function test() { $foo = "local variable"; echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n"; echo '$foo in current scope: ' . $foo . "\n"; } $foo = "Example content"; test(); ?>
Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。
要做到这一点,请在您第一次声明变量时使用 static 关键字:
实例
<?php function myTest() { static $x=0; echo $x; $x++; } myTest();//0 myTest();//01 myTest();//012 myTest();//0123 ?>
每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
注释:该变量仍然是函数的局部变量。
参数作用域
参数是通过调用代码将值传递给函数的局部变量。
参数是在参数列表中声明的,作为函数声明的一部分:
PHP echo 和 print 语句
echo 和 print 区别:
· echo - 可以输出一个或多个字符串,字符串可以包含 HTML 标签
· print - 只允许输出一个字符串,返回值总为 1
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
PHP echo 语句
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
显示变量
<?php $txt1="Learn PHP"; $txt2="PHP online"; $cars=array("Volvo","BMW","Toyota"); echo $txt1; echo "<br>"; echo "Study PHP at $txt2"; echo "<br>"; echo "My car is a {$cars[0]}"; ?>
PHP print 语句
print 同样是一个语言结构,可以使用括号,也可以不使用括号: print 或 print()。
显示字符串
<?php print "<h2>PHP is fun!</h2>"; print "Hello world!<br>"; print "I'm about to learn PHP!"; ?>
显示变量
<?php $txt1="Learn PHP"; $txt2="PHP online"; $cars=array("Volvo","BMW","Toyota"); print $txt1; print "<br>"; print "Study PHP at $txt2"; print "<br>"; print "My car is a {$cars[0]}"; ?>
PHP的数据类型包括以下几种,
Integer(整型)
String(字符串)
Float(浮点型),
Boolean(布尔型)
Array(数组)
Object(对象)
NULL(空值)
查看数据类型
1. gettype(传入一个变量) 能够获得变量的类型
2. var_dump(传入一个变量) 输出变类型和值 (最常用)
var_dump() 是一个函数。向括号()中间插入变量。这个函数,会打印出来数据类型,还会对应显示变量的长度和值。
<?php $x = 5985; //十进制 echo gettype($x);//int var_dump($x);//int(5985) echo "<br>"; $x = -345; // 负数 var_dump($x);//int(-345) echo "<br>"; $x = 0x8C; // 十六进制数 var_dump($x);//int(140) echo "<br>"; $x = 047; // 八进制数 var_dump($x);//int(39) ?>
整型(int)
所谓整型,就是大家数学中所学的整数。
整型分为:
1. 10进行制
2. 8进制 (了解,基本不用)
3. 16进制(了解,基本不用)
8进制声明: 以0开始,后面跟0-7的整数(了解知识点)
16进制声明: 以0x开始,后面跟0-f的,0x的abcdef不区分大小写。(了解知识点)
整数规则:
· 整数必须有至少一个数字(0-9)
· 整数不能包含逗号或空格
· 整数不能有小数点
· 整数正负均可
· 可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)
字符串(String)
字符串就是所有我们可见和不可见的字符,就是我们日常当中说的话,就是我想说:“李文凯好帅”或者“凤姐,我爱你!”。字符串,就是我想表达的一切让人看到的字符。
例如可以看到的字符:
我愿变成童话你,你爱的那个王子,有房有车有票子。 <html><title></title></html> ^@@@#@ my name is xiaoshenyang
以上的文字,HTML标签、特殊字符和英文等等,我们都认为是字符串
在PHP语言中声明字符串有三种方式:
1. 用单引号声明
2. 用双引号声明
3. 用字界符声明(需要输入非常大段的字符串时使用)
1.单引号声明 用英文半脚的单引号,将字符串包起来,就像下面这样:
$zifuchuan= '我是单引号';
1. 双引号声明 字符串在字符串两边加双引号,向下面这样:
$zifuchuan= "我是双引号";
3.字界符声明
1).在变量后面的等号写三个小于号(<<<)。
2).然后在<<<后面写上字符(建议英文大写字符)。如下例中的:ABC
3).然后换行写上任意想写的字符
4).写完后,顶行。在行最开始处,再写上<<<后面的字符和分号。如下例中的:ABC;
<?php $dingjie = <<<ABC 如果 非要在这个滚犊子 前 面<br /> 加上一段 <i>距离的话</i> 我想说:<h1>思想有多远,你就跟我滚多远</h1> ABC; echo $dingjie; ?>
浮点型(float)
所谓浮点类型,可以理解为:我们数学里面的小数。
布尔型(bool)
布尔类型就是:真和假。
在英文把真和假翻译过来就是:
· true(真)
· false(假)
因此,我们在PHP代码里面可以这样声明。
<?php
//声明一个变量(拼音)为布尔
$buer = true;
//导明一个变量(英文)
$bool = false;
?>
注:true和false外面不要加引号。
数组(Array)
数组就是在一个变量中存储多个值。
<?php $cars=array("Volvo",'a',1,false,1.2,array("a",2),null); var_dump($cars); ?>
array(7) { [0]=> string(5) "Volvo" [1]=> string(1) "a" [2]=> int(1) [3]=> bool(false) [4]=> float(1.2) [5]=> array(2) { [0]=> string(1) "a" [1]=> int(2) } [6]=> NULL }
对象(Object)
对象是存储数据和有关如何处理数据的信息的数据类型。
在 PHP 中,必须明确地声明对象。
首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:
字符串变量用于存储并处理文本。
PHP 中的字符串变量
字符串变量用于包含有字符的值。
在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把它存储在变量中。
一些常用的操作字符串的函数和运算符。
PHP 并置运算符
在 PHP 中,只有一个字符串运算符。
并置运算符.(点)用于把两个字符串值连接起来。
PHP strlen() 函数
有时知道字符串值的长度是很有用的。
strlen() 函数返回字符串的长度(字符数)。
注意:在UTF-8下 strlen 把中文字符算成 3 个字节,英文,空格,符号占 1 个字节。
PHP strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置,字符串中第一个字符的位置是 0,而不是 1。如果未找到匹配,则返回 FALSE。
explode() 函数
explode() 函数使用一个字符串分割另一个字符串,并返回由字符串组成的数组。
注释:"separator" 参数不能是一个空字符串。
语法:explode(separator,string,limit)
参数 | 描述 |
---|---|
separator | 必需。规定在哪里分割字符串。 |
string | 必需。要分割的字符串。 |
limit | 可选。规定所返回的数组元素的数目。
可能的值:
|
<?php $str = 'one,two,three,four'; // 返回包含一个元素的数组 print_r(explode(',',$str,0)); print "<br>"; // 数组元素为 2 print_r(explode(',',$str,2)); print "<br>"; // 删除最后一个数组元素 print_r(explode(',',$str,-1)); ?>
Array([0] => one,two,three,four)
Array([0] => one[1] => two,three,four)
Array([0] => one[1] => two[2] => three)
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
PHP str_word_count() 函数对字符串中的单词进行计数:
PHP strrev() 函数反转字符串:
PHP str_replace() 函数用一些字符串替换字符串中的另一些字符。
下面的例子用 "Kitty" 替换文本 "world"
<?php echo str_replace("world", "Kitty", "Hello world!"); // 输出 Hello Kitty! ?>
常量可以理解为:永久不变的值
常量值被定义后,在脚本的其他任何地方都不能被改变
PHP 常量
常量是单个值的标识符(名称)。在脚本中无法改变该值。
有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
常量名可以小写,但是通常大写
注释:与变量不同,常量贯穿整个脚本是自动全局的。
设置 PHP 常量
如需设置常量,请使用 define() 函数 - 它使用三个参数:
1. 首个参数定义常量的名称
2. 第二个参数定义常量的值
3. 可选的第三个参数规定常量名是否对大小写敏感。默认是 false。
常量是全局的
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
<?php header("Content-type:text/html;charset=utf-8"); define("GREETING", "欢迎访问 php.cn"); function myTest() { echo GREETING; } myTest(); // 输出 "欢迎访问 php.cn" ?>
系统还为我们准备了一些内置的常量。这些常量都是规定好的。
<?php header("Content-type:text/html;charset=utf-8"); define("GREETING", "欢迎访问 php.cn"); function myTest() { echo GREETING; //内置的预定义常量 NULL TURE FALSE echo "<br>".__LINE__;//左右各两条下划线 返回函数的第几行 echo "<br>".__FILE__;//返回pHP程序文件名 当前文件在服务器的路径 echo "<br>".PHP_VERSION; echo "<br>".PHP_OS; echo "<br>".E_ERROR;//该常量指到最近的错误处 echo "<br>".E_WARNING;//该常量指到最近的警告处、 } myTest(); // 输出 "欢迎访问 php.cn" ?>
https://www.php.cn/code/95.html
PHP算术运算符
运算符 | 名称 | 例子 | 结果 |
+ | 加法 | $x + $y | $x 与 $y 求和 |
- | 减法 | $x - $y | $x 与 $y 的差数 |
* | 乘法 | $x * $y | $x 与 $y 的乘积 |
/ | 除法 | $x / $y | $x 与 $y 的商数 |
% | 取余也叫取模、求模 | $x % $y | $x 除 $y 的余数 |
<?php $x=10; $y=6; echo ($x + $y)."<br/>"; // 输出 16 echo ($x - $y)."<br/>"; // 输出 4 echo ($x * $y)."<br/>"; // 输出 60 echo ($x / $y)."<br/>"; // 输出 1.6666666666667 echo ($x % $y)."<br/>"; // 输出 4 ?>
PHP赋值运算符
我们在数学里面把 = (一个等号)叫作赋值运算符,即:把等号右边的值,赋值给等号左边的变量,左边的变量就为右边的值。
符号 | 举例 | 等价式 |
+= | $x += $y | $x = $x + $y |
-= | $x -= $y | $x = $x - $y |
*= | $x *= $y | $x = $x * $y |
/= | $x /= $y | $x = $x / $y |
%= | $x %= $y | $x = $x % $y |
.= | $x .= $y | $x = $x . $y |
PHP字符串运算符
运算符 | 名称 | 例子 | 结果 |
. | 串接 | $txt1 = "Hello" $txt2 = $txt1 . " world!" | 现在 $txt2 包含 "Hello world!" |
.= | 串接赋值 | $txt1 = "Hello" $txt1 .= " world!" | 现在 $txt1 包含 "Hello world!" |
<?php $a = "Hello"; $b = $a . " world!"; echo $b; // 输出 Hello world! echo "<br/>"; $x="Hello"; $x .= " world!"; echo $x; // 输出 Hello world! ?>
PHP递增/递减运算符
递增与递减说简单点就是把自己加一或减一
符号 | 说明 |
$x++ | 先赋值后加 |
$x-- | 先赋值后减 |
++$x | 先加后赋值 |
--$x | 先减后赋值 |
PHP比较运算符:
PHP 比较运算符用于比较两个值(数字或字符串):
名称 | 例子 | 结果 | |
== | 等于 | $x == $y | 如果 $x 等于 $y,则返回 true。 |
=== |
全等(完全相同) |
$x === $y |
如果 $x 等于 $y,且它们类型相同,则返回 true |
!= | 不等于 | $x != $y | 如果 $x 不等于 $y,则返回 true。 |
<> | 不等于 | $x <> $y | 如果 $x 不等于 $y,则返回 true。 |
!== |
不全等(完全不同) |
$x !== $y |
如果 $x 不等于 $y,且它们类型不相同,则返回 true。 |
> | 大于 | $x > $y | 如果 $x 大于 $y,则返回 true。 |
< | 小于 | $x < $y | 如果 $x 小于 $y,则返回 true。 |
>= | 大于或等于 | $x >= $y | 如果 $x 大于或者等于 $y,则返回 true. |
<= | 小于或等于 | $x <= $y | 如果 $x 小于或者等于 $y,则返回 true。 |
<?php $x=100; $y="100"; var_dump($x == $y);//bool(true) echo "<br>"; var_dump($x === $y);//bool(false) echo "<br>"; var_dump($x != $y);//bool(false) echo "<br>"; var_dump($x !== $y);//bool(true) echo "<br>"; $a=50; $b=90; var_dump($a > $b); echo "<br>"; var_dump($a < $b); ?>
PHP逻辑运算符
运算符 | 名称 | 例子 | 结果 |
and | 与 | $x and $y | 如果 $x 和 $y 都为 true,则返回 true。 |
or |
或 |
$x or $y |
如果 $x 和 $y 至少有一个为 true,则返回 true。 |
xor |
异或 |
$x xor $y |
如果 $x 和 $y 有且仅有一个为 true,则返回 true。 |
&& | 与 | $x && $y | 如果 $x 和 $y 都为 true,则返回 true。 |
|| |
或 |
$x || $y |
如果 $x 和 $y 至少有一个为 true,则返回 true。 |
! | 非 | !$x | 如果 $x 不为 true,则返回 true。 |
PHP数组运算符
运算符 | 名称 | 例子 | 结果 |
+ | 联合 | $x + $y | $x 和 $y 的联合(但不覆盖重复的键) |
== |
相等 |
$x == $y |
如果 $x 和 $y 拥有相同的键/值对,则返回 true。 |
=== |
全等 |
$x === $y |
如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。 |
!= | 不相等 | $x != $y | 如果 $x 不等于 $y,则返回 true。 |
<> | 不相等 | $x <> $y | 如果 $x 不等于 $y,则返回 true。 |
!== | 不全等 | $x !== $y | 如果 $x 与 $y 完全不同,则返回 true。 |
三目运算符
三目运算符的格式:
(expr1)?(expr2):(expr3); //表达式1?表达式2:表达式3
<?PHP $a=10; $b=20; $c=$a>$b?($a-$b):($a+$b); //说明:如果变量a大于变量b则执行问号后面的,否则就执行:冒号后面的 echo $c; ?>