初识PHP
1 php的类型
表1
|
项目名称 |
默认语法 |
短标签 |
脚本 |
ASP |
|
语法格式 |
<?php ?> |
<? ?> / <?= ?> |
<script=’php’> </script> |
<% %> |
|
示例 |
<?php echo‘Hello PHP’ ?> |
<?= print ‘PHP’ ?> |
<script=’php’> print ‘Hello’ </script> |
<% ‘hello PHP’ %> |
|
备注 |
|
需要启用PHP中的short_open_tag指令 |
|
|
2 代码注释类型
表2
|
项目名称 |
语法规范 |
示例 |
备注 |
|
单行C++语法 |
双斜线(//) |
//Hello Php |
|
|
shell语法 |
#开头 |
# title: Hello |
|
|
多行C语法 |
/* */ |
/*Hello PHP*/ |
|
3 输出数据类型
表3
|
项目名称 |
形式 |
示例 |
返回值 |
异同点 |
相同点 |
备注 |
|
print() |
int print(argument) |
<?php print(‘Hello PHP’); ?> |
返回1 |
|
都可以输出数据 |
1.echo返回输出的速度较printf()输出速度快些,主要是echo什么都不返回 |
|
echo() |
Void echo(string argument1,[...string argumentN]) |
echo ‘I love PHP’; |
什么都不返回 |
|
||
|
printf() |
Integer printf(string format [,mixed args]) |
printf(‘Bar inventory: %d bottles of topnic water.’,100) |
输出有静态文本和一个或者多个变量中存储的动态信息组成的混合产物
|
将静态数据和动态数据清晰的分至两个不同的部分,从而便于维护 通过printf(),我们有充分的控制权来决定如何将动态信息显示在屏幕上,可控因素包括其类型、精度、对齐方式和位置 |
||
|
sprintf() |
string sprintf(string format [, mixed arguments]) |
$cost = sprintf(“$%.2f”,43.2)//$cost = 43.20 |
返回输出赋给一个字符串 |
|
3.1 常用类型指示符
表4
|
类型 |
含义 |
例子 |
|
%b |
将参数认为是一个整数,显示为二进制数 |
printf(‘%b hello’,101) printf(‘%dHello$%.2f’,200,20.5) ... |
|
%c |
将参数认为是一个整数,显示为对应的ASCII字符 |
|
|
%d |
将参数认为是一个整数,显示为有符号的十进制数 |
|
|
%f |
将参数认为事业观浮点数,显示为浮点数 |
|
|
%o |
将参数认为是一个整数,显示为八进制数 |
|
|
%s |
将参数认为是一个字符串,显示为字符串 |
|
|
%u |
将参数认为是一个整数,显示无符号十进制数 |
|
|
%x |
将参数认为是一个整数,显示为小写的十六进制数 |
|
|
%X |
将参数认为是一个整数,显示为大写的十六进制数 |
4 数据类型:具有一组相同特性的数据统称。
表5
|
类型 |
定义 |
返回值 |
例子 |
备注 |
|
布尔型 |
表示真实性 |
True/false |
$alive = false //false $alive = 1 //true $alive = -1 //false |
|
|
整型 |
不包含小数部分的数 |
返回的不包含小数部分的数 |
$alive = 10; // 10 $alive = -1 // -1 $alive = 10.25 // 10 $alive = aa205 // 0 |
支持十进制、八进制和十六进制数表示的整数值 |
|
浮点型 |
称为单精度(float)、双精度(double)或者实数(realnumber) |
返回的包含小数部分的数 |
4.5678 4.0 8.7e4 1.23E+11 |
表示货币值、重量、距离以及用简单的整数无法满足要求的其他表示 |
|
字符串 |
一个连续的字符序列 |
一个连续的字符序列 |
“PHP is great language” ‘whoop-de-do’ |
这样的组通常用单引号或双引号界定 |
|
数组 |
有索引的数据值集合,每个数组的索引【也称为键(key)】引用一个对应的值 |
|
[ 0=>[‘id’=>2,’count’=>1]] ... |
|
|
对象 |
对象 |
|
Class{ private $_power; function($status){ $this->_power = $status; } } |
|
4.1类型之间的转换
定义 :将一个变量强制转换为与原类型不同的另一种类型,称为类型强制转换。
表6
|
转换操作符 |
含义 |
例子 |
|
(array) |
转换为数组 |
(array)$i =10 //$i[0] = 10 |
|
(bool)或(boolean) |
转换为布尔值 |
|
|
(int)或(integer) |
转换为整数 |
(int)$i = 10.5 //$i=10 |
|
(obj) |
转换为对象 |
(obj)$model = ‘to’; |
|
(real)或(double)或(float) |
转换为浮点数 |
(float)$i = 5 //$i=5.0 |
|
(string) |
转换为字符串 |
(string)$i = 10 // $i = ‘10’ |
4.2与类型有关的函数
表7
|
项目名称 |
方法 |
返回值 |
可取值 |
形式 |
|
获取类型 |
gettype() |
array、boolean、double、integer、object、resource、string和unknow type |
/ |
String gettype(mixed var) |
|
转换类型 |
settype() |
True/false |
array、boolean、float、integer、null、object、string |
boolean settype(mixed var, string type) |
4.3类型标识符函数
表8
|
项目名称 |
形式 |
|
is_array()、is_bool()、is_float()、is_integer()、is_null()、is_numeric()、is_object()、is_recourse()、is_scalar()、is_string() |
bool is_name(mixed var) |
5标识符
5.1概念
是变量、函数和其他各种用户定义对象通用的术语。
5.2标识符规则
1.标识符可以由一个或多个字符组成,必须以字母或下划线开头。
2.标识符只能由字母、数组、下划线字符和从127~255的其他ASCII字符组成。
3.标识符应区分大小写。
4.标识符可以是任意长度。
5.标识符名不能与任何PHP预定义关键字相同。
5.3示例
合法的标识符:my_function、_myStore、Size ...
非法的标识符:!door、This&count、4four ...
6变量
6.1 概念
可以在不同时刻存储不同值的符号。变量是具有名字的内存位置,其中存有数据,可以在程序执行期间进行处理。
6.2 语法规则
$符号 + 标识符
6.3 语法命名规则
1.应遵循标识符的命名规则2.注意变量是区分大小写的。
6.4 示例:
合法的变量:$my_function、$_myStore ...
非法的变量 : $!door、$This&count、$4four ...
6.5 赋值类型
//1.变量按值赋值
$color = 'red'; $number = 123; $age = 12; $sum = 12 + '15';
//2.引用赋值(第一种类型)
$value_first = 'Hello'; $value_second =& $value_first; //value_first和value_second 都等于 Hello echo $value_first.'-'.$value_second.'<br/>'; $value_second = 'Good'; echo $value_first.'-'.$value_second.'<br/>'; //value_first和value_second 都等于JAVA
//3.引用赋值(第二种类型)
$value_first = 'PHP'; $value_second = &$value_first; //value_first和value_second 都等于 Hello echo $value_first.'-'.$value_second.'<br/>'; $value_second = 'JAVA'; echo $value_first.'-'.$value_second.'<br/>'; //value_first和value_second 都等于JAVA
注:所有变量都应当在使用前进行声明,最好带有注释
6.6 变量的作用域
定义的变量可允许访问的范围
表9
|
作用域 |
范围/定义 |
示例 |
备注 |
|
局部变量 |
在函数中声明的变量,即它只能在该函数中引用 |
//局部变量 $x = 4; function assignx() { $x = 0; printf("\$x inside function is %d <br/>",$x); //$x inside function is 0 } assignx(); printf("\$x outside of function is %d <br/>",$x); //$x outside of function is 4 |
$符号前加‘\’反斜线符号,可以将$符号转化为常规字符串字符,而不是一个变量。这种方式使用的‘\’反斜线符称为转义字符 |
|
函数参数 |
任何接受参数的函数都必须在函数首部声明这些参数,虽然这些参数接受函数外部的值,但退出函数后就无法在访问这些参数 |
//函数参数 function x10($value) { $value = $value * 10; printf('this result is %d <br/>',$value); print_r($value); } x10(10); //100 |
|
|
全局变量 |
可以在程序的任意地方访问,规则:global + 变量名 |
//全局变量 $somevar = 15; function addit() { global $somevar; $somevar++; echo 'Somevar is '.$somevar; //Somevar is 16 } addit(); function addit2() { /*若未访问全局变量global $somevar 则会出现提示 Notice: Undefined variable: somevar in D:\xampp\htdocs\first.php on line 47*/ $somevar++; echo 'Somevar is '.$somevar;//Somevar is 1 } addit2(); //全局变量(第二种类型) function addit3() { $GLOBALS['somevar']++; } addit3(); echo 'Somevar is '.$GLOBALS['somevar'];//Somevar is 17 |
慎用全局变量 |
|
静态变量 |
关键字static + 变量名 |
//静态变量(未声明静态) function keep_track() { $count = 0; $count++; echo $count.'<br/>';
} //结果都为1 keep_track(); keep_track(); keep_track(); //静态变量(声明静态) function keep_track2() { static $count = 0; $count++; echo $count.'<br/>';
} keep_track2();//1 keep_track2();//2 keep_track2();//3 |
与声明为函数参数的变量不同,函数参数在函数退出时会撤销,而静态变量在函数退出时不会丢失值,并且还能保留这个值以便再次调用此函数是使用。 静态作用域对递归函数很有用。 |
7 PHP超级全局变量
7.1 PHP超级全局变量之$_SERVER
包含:web服务器创建的信息,它提供了服务器和客户配置及当前请求环境的有关信息
规范详情:www.w3.org/CGI
示例:
foreach($_SERVER as $x=>$v) { echo "$x => $v <br/>"; } //打印结果: MIBDIRS => D:/xampp/php/extras/mibs MYSQL_HOME => \xampp\mysql\bin OPENSSL_CONF => D:/xampp/apache/bin/openssl.cnf PHP_PEAR_SYSCONF_DIR => \xampp\php PHPRC => \xampp\php TMP => \xampp\tmp HTTP_HOST => 127.0.0.1 HTTP_CONNECTION => keep-alive HTTP_CACHE_CONTROL => max-age=0 HTTP_UPGRADE_INSECURE_REQUESTS => 1 HTTP_USER_AGENT => Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 */ HTTP_ACCEPT => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 HTTP_ACCEPT_ENCODING => gzip, deflate, br HTTP_ACCEPT_LANGUAGE => zh-CN,zh;q=0.9 HTTP_COOKIE => __guid=96992031.483439665334252600.1554429075921.1936; monitor_count=51 PATH => C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Java\jdk1.8.0_171\bin;C:\Program Files\Java\jre1.8.0_171\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;D:\xampp\path\php;C:\WINDOWS\System32\OpenSSH\;D:\xampp\php;D:\composer;C:\ProgramData\ComposerSetup\bin;C:\Program Files\Git\cmd;C:\Users\asus\AppData\Local\Microsoft\WindowsApps;C:\Users\asus\AppData\Roaming\Composer\vendor\bin SystemRoot => C:\WINDOWS COMSPEC => C:\WINDOWS\system32\cmd.exe PATHEXT => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC WINDIR => C:\WINDOWS SERVER_SIGNATURE => Apache/2.4.26 (Win32) OpenSSL/1.0.2l PHP/7.1.7 Server at 127.0.0.1 Port 80 SERVER_SOFTWARE => Apache/2.4.26 (Win32) OpenSSL/1.0.2l PHP/7.1.7 SERVER_NAME => 127.0.0.1 SERVER_ADDR => 127.0.0.1 SERVER_PORT => 80 REMOTE_ADDR => 127.0.0.1 DOCUMENT_ROOT => D:/xampp/htdocs REQUEST_SCHEME => http CONTEXT_PREFIX => CONTEXT_DOCUMENT_ROOT => D:/xampp/htdocs SERVER_ADMIN => postmaster@localhost SCRIPT_FILENAME => D:/xampp/htdocs/first.php REMOTE_PORT => 51916 GATEWAY_INTERFACE => CGI/1.1 SERVER_PROTOCOL => HTTP/1.1 REQUEST_METHOD => GET QUERY_STRING => REQUEST_URI => /first.php SCRIPT_NAME => /first.php PHP_SELF => /first.php REQUEST_TIME_FLOAT => 1554432847.382 REQUEST_TIME => 1554432847
7.3 PHP超级全局变量之$_GET
作用:使用GET方法传递的参数的有关信息
示例:$_GET[‘id’] = ‘1’ 、$_GET[‘cat’] = ‘apache’ ...
7.4 PHP超级全局变量之$_POST
作用:使用POST方法传递的参数的有关信息
示例:$_POST[‘id’] = ‘1’ 、$_POST[‘cat’] = ‘apache’ ...
7.5 PHP超级全局变量之$_COOKIE
作用:存储通过HTTP cookie传递到脚本的信息。这些cookie一般是由以前执行的PHP脚本通过PHP函数setcookie()设置的。
7.6 PHP超级全局变量之$_FILES
作用:通过post方法向服务器上传的数据的有关信息。它是一个二维数组,包含5个元素。第一个下表表示表单的文件上传元素名;第二个是5个预定义下标之一。
5个元素的含义:
$_FILES[‘upload-name’][‘name’]:从客户端向服务器上传文件的文件名。
$_FILES[‘upload-name’][‘type]:上传文件的MIME类型。这个变量是否被赋值取决于浏览器的功能
$_FILES[‘upload-name’][‘size]:上传文件的大小(以字节为单位)
$_FILES[‘upload-name’][‘tmp_name]:上传之后,将此文件移到最终位置之前赋予的临时 名。
$_FILES[‘upload-name’][‘error’]:上传状态码(UPLOAD_ERR_OK:文件上传成功。UPLOAD_ERR_INI_SIZE:文件大小超出了upload_max_filesize指令所指定的最大值。UPLOAD_ERR_FROM_SIZE:文件大小超出了MAX_FILE_SIZE异常表单域的参数(可选)指定的最大值。UPLOAD_ERR_PARTIAL:文件只上传了一部分。UPLOAD_ERR_NO_FILE:上传表单中没有指定文件)
7.7 PHP超级全局变量之$_ENV
提供PHP解析器所在服务器环境的有关信息。
示例:$_ENV[‘HOSTNAME’]:服务器主机名。$_ENV[‘SHELL’]:系统shell
7.8 PHP超级全局变量之$_SESSION
包含与所有回话变量有关的信息
8 变量中的变量
8.1规则
$符号 + 原变量名
8.2 示例:
$recipe = "spaghetti"; $$recipe = "& meatballs"; echo $recipe .'-'. $spaghetti;//spaghetti-& meatballs echo $recipe .'-'. ${$recipe};//spaghetti-& meatballs
9常量
9.1概念/特点:
指在程序执行中无法修改的值,一旦定义,就无法在程序其他地方修改(或重新定义)
常量引用前面不需要使用$符号
常量是全局的,可以在程序/脚本的任意位置使用
9.2常量定义方法:
define()函数通过给一个变量名赋值来定义一个常量。
9.3形式:
boolean define(string name, mixed value[, bool case_insensitive]),形参case_insensitive若为true,那么后面对此常量的引用将不区分大小写。
9.4示例:
//常量 define("PI",3.1415926); //define('PI',123456);无效的常量修改操作 printf("The value of PI is %f",PI); //The value of PI is 3.141593 echo '<br/>'; $pi2 = 2 * PI; printf("PI double equal %f",$pi2);//PI double equal 6.283185 echo '<br/>';
10 表达式
10.1定义
表达式是一个短语,它表示程序中的某个特定动作。所有表达式至少由一个操作数和一个或多个操作符组成。
10.2示例:
$a = 5; //赋整数值5给变量a $a = ‘5’; //赋字符串5给变量a $sum = $a + 10; //将 $a + 10 的和赋给sum $wine = ‘zend’;//赋字符串’zend’’给变量wine $sub--; //变量sub减1
10.3操作数
表达式的输入
10.3.1示例:
$a++; // $a是操作数 $sum = $val + $val2; //sum 、val和val2都是操作数
10.4操作符
10.4.1 定义
表达式中指定某个动作的符号
10.4.2 特性
优先级:运算规则一般都是从左往右,有乘除的先算乘除后加减、有括号的先算括号内。
结合性:指定了相同优先级运算,从左到右或从右到左
示例:
//操作符结合性
$values = 3*4*5*6*7;//从左到右 print $values; echo '<br/>'; $c = 5; print $values = $a = $b = $c;//从右向左 echo '<br/>';
表10 操作符优先级、结合性作用
|
操作符 |
结合性 |
作用 |
|
new |
|
对象初始化 |
|
() |
|
建立表达式的子组 |
|
[] |
右 |
包围索引 |
|
! ~ ++ -- |
右 |
布尔、按位取反、自增、自减 |
|
@ |
右 |
错误控制 |
|
/ * % |
左 |
除法、乘法、取模 |
|
+ - . |
左 |
加、减、拼接 |
|
<< >> |
左 |
左移、右移(按位) |
|
< <= > >= |
|
小于、小于等于、大于、大于等于 |
|
== != === <> |
|
等于 、不等于、相同、不相同 |
|
& ^ | |
左 |
位与、位异或、位或 |
|
&& || |
左 |
布尔与、布尔或 |
|
?: |
右 |
三元操作符 |
|
= += *= /= .= %=&= |= ^= <<= >>= |
右 |
赋值操作符 |
|
AND XOR OR |
左 |
布尔与、布尔异或、布尔或 |
|
|
左 |
分割表达式 |
10.4.3操作符的类型
|
类型 |
定义/特点 |
符号 |
示例 |
|
算术操作符 |
用于完成各种算术运算 |
+ - * / % |
|
|
赋值操作符 |
将一个数据值赋给另一个变量 |
= += *= /= .= |
|
|
字符串操作符 |
拼接字符串 |
. .= |
|
|
自增和自减操作符 |
自增/自减操作 |
++ -- |
|
|
逻辑操作符 |
用来判断多个变量的值,常用与if条件和while及for循环 |
&&、AND ||、OR、! NO、XOR |
|
|
相等操作符 |
用来比较两个值 |
== != === |
|
|
比较操作符 |
通过比较两个或多个变量值,提供了一种控制程序流程的方法 |
<、>、<=、>=、?: |
|
|
位操作符 |
组成整数指的各个”位”层次上的检查和处理整数值 |
&、|、^、~、<<、>> |
|
11 字符串插入
11.1类型
双引号、单引号、转义序列、大括号
11.2双引号和单引号的特点
其变量和转义序列都会得到相应的解析
不会解析其变量和转义序列
11.3双引号和单引号的示例:
//双引号 $sport = 'football'; print "I like playing $sport"; //I like playing football echo '<br/>'; //单引号 print 'I like playing $sport'; //I like playing $sport echo '<br/>';
11.4转义序列
|
转义序列 |
描述 |
|
\n |
换行符 |
|
\r |
回车 |
|
\t |
水平制表符 |
|
\\ |
反斜杠 |
|
\$ |
美元符 |
|
\’’ |
双引号 |
|
\[0-7]{1,3} |
八进制记法 |
|
\x[0-9A-Fa-f]{1,2} |
十六进制记法 |
12大括号
作用:
在echo或print要输出的串中嵌入表示复杂数据类型(如数组或对象)的变量,
解析是往往不太容易。这个问题可以通过用大括号界定变量来解决。(推荐使用,理由:可以看出字符串的哪些部分是静态的,而哪些部分是动态的)
示例:
echo “This capital of Ohio is {$capitals[‘city’]}.”
13 Heredoc
14 Nowdoc
15控制结构
含义:确定了应用程序的代码流程,定义了一些执行特性
类型:条件语句、循环语句、文件包含语句
15.1条件语句
类型:if语句、else语句、else if语句、switch语句
If语句语法:
if(expression){ statement; }
注:若条件体只包含一条语句时,可以省略大括号;
else语法
else{ statement }
注:若条件体只包含一条语句时,else可以省略大括号;
//elseif语法 elseif(expression){ statement; }
注:若条件体只包含一条语句时,elseif可以省略大括号;
示例
//if-elseif-else语句(若条件体只包含一条语句时,elseif可以省略大括号) if($c == $values) echo '我们是相等的'; elseif($c == $a) echo '我们也是相等的'; else echo '我们是不相等的';
switch语句语法:
switch($value){ case $value: break; default: }
注:在每个case快的末尾处都有break语句。若没有break语句,就会执行所有后续的case块,直到遇到break停止。
示例:
//switch语句 switch($c) { case 5: echo '我们都是等于5的';break; case 6: echo '我们都是等于6的';break; case 7: echo '我们都是等于7的';break;
default: echo '我们什么也不是'; }
If和switch语句的区别
1.两者本质的区别是 if-else语句更适合于对区间(范围)的判断,而switch语句更适合于对离散值的判断
2 示例
判断65分到85分之间的学生有哪些适合用if-else语句,因为[65,85]是区间而判断一个学生的班级是一班、二班还是三班适合用switch语句,因为一班、二班、三班是离散值
3 扩展
所有的switch语句都可以用if-else语句来替换(因为if-else语句只需对每个离散值分别做判断即可),而并不是所有的if-else语句都可以用switch语句来替换(因为区间里值的个数是无限的并且switch所接受的值只能是整型或枚举型,所以不能用case来一一列举)。
15.2循环语句
类型:
while语句、do...while语句、for循环、foreach语句、break语句、goto语句、continue语句
while语句语法:
while(expression){statements}注:可以嵌入多个表达式
示例:
//while语句 $counts = 0; while($counts < 5) { printf("%d squared = %d <br/>",$counts,pow($counts,2)); $counts++; } //打印结果 /*0 squared = 0 1 squared = 1 2 squared = 4 3 squared = 9 4 squared = 16*/
do...while语句语法:
do{
statements
}while(expression)
示例:
do{ printf("%d squared = %d <br/>",$counts,pow($counts,2));//10 squared = 100 }while($counts < 5);
while语句和do...while语句的区别
1.while语句的条件判断是在执行代码块之前执行,若符合,就执行代码块,不符合,就不再执行代码块。
2.do...while语句的条件判断是在执行代码块之后执行的,所以不管符不符合条件判断,都会先执行一次代码块。
for循环语法
for(expression1;expression2;expression3){
statements;
}
注:
expression1:在第一次循环时自动计算;
expression2:在每次循环时进行计算。这个表达式确定是否继续循环。
expression3:在每次循环结束后计算。
示例:
//for循环(第一种) for($i=0;$i<5;$i++){ printf("%d squared = %d <br/>",$i,pow($i,2)); } //for循环(第二种) /*for($i=0;;$i++){ if($i<5){ printf("%d squared = %d <br/>",$i,pow($i,2)); } }*/ //for循环(第三种) /*$i = 0; for(;;){ if($i<5){ printf("%d squared = %d <br/>",$i,pow($i,2)); $i++; } }*/ /*打印结果: 0 squared = 0 1 squared = 1 2 squared = 4 3 squared = 9 4 squared = 16*/
foreach语句语法(最擅长处理数组)
foreach(array_expr as $value){
statements;
}
示例
//foreach语句(第一种) $array_list = array('www.baidu.com','www.360.cn','www.2345.com'); echo 'These are network:<br/>'; foreach($array_list as $v){ //echo '<a href = http://'.$v.'>'.$v.'</a><br/>'; echo "<a href = \"http://$v\">$v</a><br/>"; }
foreach语句语法(最擅长处理数组)
oreach(array_expr as $key => $value){
statements;
}
示例:
//foreach语句(第二种) $array_list = array('baidu'=>'www.baidu.com','360'=>'www.360.cn','2345'=>'www.2345.com'); foreach($array_list as $x => $v){ //echo '<a href = http://'.$v.'>'.$v.'</a><br/>'; echo "<a href = \"http://$v\">$x</a><br/>"; }
break语句:遇到break语句将立即结束do...while、for、foreach、switch或者while循环的执行。
示例
//break语句 $primes = array(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47); for($i=1;$i++;$i<1000){ $random = rand(1,50); if(in_array($random,$primes)){ break; }else{ printf("Non-prime number found: %d <br/>",$random); } } /*打印结果: Non-prime number found: 46 Non-prime number found: 14*/
goto语句:遇到goto语句,是可以直接跳到一个循环或条件构造之外的某个特定的位置。
示例:
//goto语句 for($i=0;$i<10;$i++){ $random = rand(1,50); if($random < 10){ goto less; }else{ echo "Number greater than 10 : $random <br/>"; } } less:echo "Number less than 10 : $random <br/>"; /*打印结果 Number greater than 10 : 19 Number greater than 10 : 42 Number greater than 10 : 36 Number greater than 10 : 32 Number greater than 10 : 34 Number greater than 10 : 15 Number greater than 10 : 14 Number less than 10 : 8*/
continue语句:使当前循环迭代执行结束,并从下一次迭代开始执行。
示例:
//continue语句 $continues = array('good','hello','bye'); for($i=0;$i < count($continues);$i++){ if($continues[$i] === 'bye') continue; printf("Words is : %s <br/>",$continues[$i]); } /*打印结果: Words is : good Words is : hello*/
15.3文件包含语句
|
类型 |
定义/特点 |
形式 |
示例 |
异同点 |
|
include() |
将在其被调用的位置判断并包含一个文件。包含一个文件与复制该文件的数据到该语句所在位置具有相同的结果。 |
include(/path/filename) |
include “user/local/lib/php/wi/init.inc.php”; |
|
|
include_once() |
确保只包含文件一次 |
include_once(filename) |
|
|
|
require() |
请求文件 |
require() |
|
|
|
Require_once() |
确保只请求文件一次 |
require_once() |
|
16小结
在初始php中我们,学习了PHP的类型、代码注释类型、输出数据类型、常用指示符类型、数据类型、标识符、变量、常量、表达式、控制结构、字符串等。
虽然本小节的知识有些枯燥,但是这是我们迈向高级PHP程序设计师的一步,加油!!!!

浙公网安备 33010602011771号