PHP的语法借鉴吸收了C语言,Java和Perl等流行计算机语言的特点,易于一般程序员学习
PHP的主要目标时允许网络开发人员快速编写动态页面
简单点说PHP主要被用于开发各种类型的网站程序
脚本后缀名:.php
与html语言进行混编,脚本的后缀名依然是php
细化点说PHP可以用于收集表单数据,生成动态网页,字符串处理,动态输出图像,处理服务端文件,与数据库交互,会话跟踪,
处理xml文件,支持大量的网络协议,服务端的其他相关操作
PHP是脚本语言,解释型语言,不需要事先编译,即可在服务器端运行
PHP可以运行在windows,Linux等各种操作系统上
windows:phpstudy
Linux:单独安装
1,浏览器 2,输入url地址 3,显示网站内容
Apache + PHP + MySQL是PHP比较流行的生存环境 LAMP
开始标记:<?php 结束标记:?> 1:<?php ?>这之间就表示进入PHP模式,在开始和结束标记之外的内容都会被PHP解析器忽略 2:可以直接嵌入到html代码中,并且可以嵌入到html代码中的任何地方 3:在一个html文档中可以嵌入任意多个PHP标记 4:文件末尾的PHP代码段结束标记可以不要
php 用分号表示一句话的结束 结束标志?>就隐含一个分号,所以PHP代码最后一行可以不用加分号
注释内容不会显示在浏览器的源代码中,PHP运行的环境是服务器,我们浏览器端看到的是PHP引擎运行PHP代码后的执行结果 /* 多行注释 */ // 单行注释
空白符包括:空格,制表符tab,换行 这些在PHP中都是无关紧要的(注意都是在英文输入法下输入的),可以将一个语句展开成人一行,或者紧缩在一行, 空格与空行的合理运用可以增强代码的清晰性与可读性,如果运用不合理反而会对阅读产生负担。
1 phpinfo(); 2 echo 用于输出简单的变量 3 var_dump(); 用于输出变量值及其变量类型
变量是临时存储值的容器 另外PHP脚本语言是一种弱类型的语言,和其他语言不同的是变量或者常量的数据类型由程序的上下文决定
PHP的特性之一就是它不要求在使用变量之前声明变量,当第一次给一个变量赋值时,你才创建了这个变量,变量用于存储值, 比如数字,文本,字符串,数组等等,一旦设置了某个变量,我们就可以在脚本中重复的使用它 PHP中变量必须使用一个美元符号$ 后面跟着变量名来表示,使用赋值操作符(=)给一个变量赋值 引用赋值: $c = &$a; 相当于给$a起了一个别名,$c的值改变,$a也随之改变;$a的值改变,$c也随之改变。绑定在一起,均指向同一内存地址
unset($name);
1:严格区分大小写 2:字母,数字,下划线,不能以数字开头 $name1 $_name23 3:尽量不要使用php关键字做为变量名
$$name
Error 结束脚本执行 Warr~ 只提示,不影响执行 Notice
变量类型是指保存在该变量中的数据的类型,具有相同的类型的数据才能彼此互相操作。使用var_dump(变量名) 可以输出变量的类型。
true false 以下内容会被当作false,其他均会被认为true 1)布尔值false 2)0 3)浮点型0.0 4)空白字符串和字符串0 5)没有成员的数组 6)NULL
存储整数
存储小数
字符串的定义 '' "" 注意:单引号定义的字符串中若有单引号,则需要转义符\ 单引号定义的字符串中,$符号原样输出 双引号定义的字符串中,$符号是变量的开始,变量整体用{}括起来 单双 引号定义的字符串中输入特殊字符包括【' '' $...】需要转义 定界符: 定界符的开始和结束后面不能有任何字符,包括空白字符和注释
define("NAME","XXX"); echo NAME; 预定义常量: __FILE__ 当前的文件名(包括路径) __LINE__ 当前行数 __FUNCTION__ 当前函数名 __CLASS__ 当前的类名 __METHOD__ 当前对象的方法名 PHP_OS UNIX或WINNT等 PHP_VERSION 当前PHP服务器的版本 DIRECTORY_SEPARATOR \或/ 根据操作系统决定目录的分隔符
<?php $a = 10; $b = 5; $c = -$a; echo $c; echo "<hr />"; $c = $a + $b; echo $c; echo "<br />"; $c = $a - $b; echo $c; echo "<br />"; $c = $a * $b; echo $c;echo "<br />"; $c = $a / $b; echo $c;echo "<br />"; $c = $a % $b; echo $c;echo "<hr />"; echo $a++; // 10 先输出,再自增 echo ++$a; // 12 先自增,再输出 echo "<br />"; echo $a; // 12 echo "<br />"; echo $a--; // 12 echo --$a; // 10 ?>
非 ! 取反 与 and && $a和$b同时为true ---> true 或 or || $a和$b任一个为true ---> true 异或 xor $a和$b任一个为true,但不同时 ---> true
<?php $a = true; $b = false; $c = !$a; var_dump($c); // bool(false) $c = $a and $b; var_dump($c); // true var_dump($c = $a and $b); ?>
比较参与运算的单元是否相同,相同为真,不同为假。 $a == $b 等于 TRUE,如果类型转换后 $a 等于 $b。 $a === $b 全等 TRUE,如果 $a 等于 $b,并且它们的类型也相同。 $a != $b 不等 TRUE,如果类型转换后 $a 不等于 $b。 $a <> $b 不等 TRUE,如果类型转换后 $a 不等于 $b。 $a !== $b 不全等 TRUE,如果 $a 不等于 $b,或者它们的类型不同。 $a < $b 小与 TRUE,如果 $a 严格小于 $b。 $a > $b 大于 TRUE,如果 $a 严格大于 $b。 $a <= $b 小于等于 TRUE,如果 $a 小于或者等于 $b。 $a >= $b 大于等于 TRUE,如果 $a 大于或者等于 $b。 $a <=> $b 太空船运算符(组合比较符) 当$a小于、等于、大于$b时分别返回一个小于、等于、大于0的integer 值。 PHP7开始提供. $a ?? $b ?? $c NULL 合并操作符 从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL。PHP7开始提供
<?php $a = 0; $b = false; $c = 0.0; $d = 1/3; $e = 2/6; $f = true; echo '$a == $b:'; var_dump($a == $b); // bool(true) echo "<br />"; echo '$a === $b:'; var_dump($a === $b); // bool(false) echo "<br />"; echo '$a != $b:'; var_dump($a != $b); // bool(false) echo "<br />"; ?>
?: 三元运算符 $a=10>20?10:20; `` 将字符串当作命令执行 @ 屏蔽提示
<?php $a = 10<20?10:20; echo $a; // 10 echo "<hr />"; echo `whoami`; // win2008-1\administrator echo "<hr />"; echo @$name; // 屏蔽了错误提示 ?>
php代码执行的时候,依次顺序执行
if (判断条件){执行语句块1}else{执行语句块2}
if (判断条件){执行语句块1}elif{执行语句块2}elif{执行语句块3}...else{执行语句块} switch...case...default
switch:
rand随机数1-7每次刷新网页都不一样
<?php $day = rand(1,7); echo $day; echo "<br />"; switch($day){ case 1: echo "monday"; break; case 2: echo "tuesday"; break; case 3: echo "wednesday"; break; case 4: echo "thursday"; break; default: echo "what?"; } ?>
当满足条件时,执行 计数器,变量 判断条件
先执行,再判断
<?php $a = 0; do{ echo ++$a; }while($a < 10) ?>
for(;;){}
<?php for($a=0;$a<10;$a++){ echo $a."<br />"; } ?>
break break 2; 跳出两层循环
<?php for($i=0;$i<10;$i++){ echo $i."<hr />"; for($j=0;$j<5;$j++){ echo $j."<br />"; if($j==3){ echo "xxxxxx"; break 2; // 跳出两次循环 } } echo "<hr />"; } ?>
<?php for($i=0;$i<10;$i++){ echo $i."<hr />"; for ($j=0;$j<5;$j++){ if ($j == 3){ continue; // 跳过本次(第三次)循环 } echo $j."<br />"; } } ?>
都是直接结束脚本
<?php for($i=0;$i<10;$i++){ echo $i."<hr />"; for ($j=0;$j<5;$j++){ if($j==3){ # die("the end"); exit("the end"); } echo $j."<br />"; } } ?>