注:以下学习笔记均求学于php中文网
php常量和变量之环境变量
//输出当前文件的路径
echo $_SERVER['SCRIPT_FILENAME'];
?>
常见的环境变量的键名和值的对应意思
键名
含义
$_SERVER["REQUEST_METHOD"]
请求当前PHP页面的方法
$_SERVER["REQUEST_URI"]
请求的URI
$_SERVER["SERVER_SOFTWARE"]
用的是哪一种服务器
$_SERVER["REMOTE_ADDR"]
客户的IP地址
$_SERVER["SERVER_ADDR"]
当前服务器的IP地址
$_SERVER["SCRIPT_FILENAME"]
当前请求文件的路径
$_SERVER["HTTP_USER_AGRNT"]
当前访问这个网址的电脑和浏览器的情况
$_SERVER["HTTP_REFERER"]
上级来源(用户从哪个地址进入当前网页的)
$_SERVER["REQUEST_TIME"]
当前的时间
注:URI和URL都是网址,URL带有主机地址部分
eg:http://www.php.cn/abc.php?username=php
URI不带主机和协议部分
eg:abc.php?username=php
php常量和变量之变量引用
$abc = 3;
//加上&(and符),将变量$qwe指向与变量$abc同一个地址存值空间了
$qwe = &$abc;
$qwe = 4;
echo $qwe;
echo $abc;
?>
php基础语法之算术运算
符号
说明
举例
+
加号
$x + $y
-
减号
$x - $y
*
乘号;乘以
$x * $y
/
除号;除以
$x / $y
%
取余也叫取模、求模
$x % $y
注:先乘除、后加减、括号()内的优先级高
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基础语法之自加自减
符号
说明
$x++
先赋值后加
$x--
先赋值后减
++$x
先加后赋值
--$x
先减后赋值
php基础语法之比较运算符
符号
说明
>
大于
<
小于
>=
大于等于
<=
小于等于
!=
不等于
==
等于
===
全等(判断类型等于)
!==
全不等(判断类型不等于)
php基础语法之逻辑运算
举例
说明
详细说明
$x and $y
逻辑与(并且关系)
$x与$y为真则返回真
$x && $y 逻辑与(并且关系)
$x与$y为真则返回真
$x or $y
逻辑或
$x,$y均为false时为假,其他情况全为真
$x || $y
逻辑或
$x,$y均为false时为假,其他情况全为真
!$x
逻辑非
取反、即true变为false,false变为true
$x xor $y
逻辑异或
相同取false,相异为true
eg:
//如果为defined('AUTH')存在AUTH常量则为true,不访问后面的exit了。如果为false则执行exit
defined ('AUTH') or exit ('.存在安全因素不准访问');
/*
exit:指此处停止运行,退出。
1.直接exit,就是直接退出
2.exit('提示内容');退出的时候还给出一段提示内容
*/
?>
php基础语法之三元运算符和其他运算符
符号
说明
$x?真代码段:假代码段
判断是否为真假?真情况:假情况
eg:
$x = true;
$x ? $y = 5 : $y = 6;
echo $x;
?>
``(反引号)
反引号中间插代命令,执行系统命令,等价于shell_exec函数
eg:
echo '
';
echo `ipconfig`;
echo '
';
?>
@
单行抑制错误,把这一行的错误不让它显示出来了,效率低不建议使用
eg:
@$fp = fopen('nononofiles.txt','r');
?>
=>
数组下标访问符
eg:
$data = array('sina' =>'新浪' ,'sohu' => '搜狐');
?>
->
对象访问符
instanceof
判断某个对象是否来自某个类,如果是则返回true,如果不是返回false
eg:
//实例化一个对象
$obj = new StdClass();
//判断某对象是某由某个类实例化,如果是的则执行真
if($obj instanceof stdClass){
echo '真';
}else{
echo '假';
}
//向obj对象中追加一个成员属性为username
$obj -> username = 'PHP中文网';
echo $obj -> username;
?>
php流程控制之if条件结构流程
eg:
/*Date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。
d - 表示月里的某天(01-31)
m - 表示月(01-12)
Y - 表示年(四位数)
1 - 表示周里的某天
其他字符,比如 "/", "." 或 "-" 也可被插入字符中,以增加其他格式。 */
$week = date("4");
if ($week < 6){
echo "仍需上班";
}
?>
if的结构
//if单行判断
if(布尔值判断)
只写一句话;
后续代码
//if多行判断
if(布尔值判断){
可以写多句话;
}
后续代码
php流程控制之嵌套if..else..elseif结构
if(判断语句1){
执行语句体1
}elseif(判断语句2){
执行语句体2
}else if(判断语句n){
执行语句体n
}else{
最后的else语句可选
}
//后续代码
?>
php流程控制之if语句多种嵌套
if(判断1){
if(判断2){
代码段 1
}else{
代码段2
}
}else{
if(判断3){
代码段3
}else{
代码段4
}
}
?>
php流程控制之分支结构switch语句的使用
switch(变量){ //字符串,整型
case 具体值:
执行代码;
break;
case 具体值2:
执行代码2;
break;
case 具体值3:
执行代码3;
break;
default:
}
?>
php流程控制之循环语句的使用
//定义需要往返的次数,从0开始计
$count = 0;
//while后面接布尔值判断,为真执行,为假停止
//$count 小于100的时候执行,也就是$count为0至99的时候执行
//如果$count不小于100了,循环停止执行后续的代码
//循环开始处
while($count < 100){
echo '我de第' . $count .'次出差
';
//每次执行让$count+1,这样的话,就不会产生$count永远小于100的情况了
$count++;
//循环结束
}
echo '我跳槽啦';
?>
while循环
while是一个布尔型循环,while(布尔判断)的值为true就执行大括号中的代码。
while(布尔判断)的值为false就停出去,执行后续代码
php流程控制之do...while循环的区别
do {
//代码块
} while (判断);
do-while 不论while判断是否成立,先执行一次代码代码块循环语句,保证会执行一次(表达式的真值在每次循环结束后检查)。
然而我们之前的while循环会检查布尔判断区域,成立则执行。不成立则不执行。
php流程控制之for循环控制语句
for (表达示1; 表达示2; 表达示3){
需要执行的代码段
}
注:1.表达式1 是初始化赋值,可以同时赋值多个代码。
表达示2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。
表达示3 在每次循环之后被求值。
eg:
for($i=0,$j=10;$i<$j;$i++,$j--){
echo $i.'---------'.$j.'
';
}
?>
exit、break和continue的区别
语句
作用
exit
从当前处停止后续执行
break
跳出循环或者跳出结构体执行后续代码
continue
跳出此次循环,下次循环继续
php流程控制之goto语法
eg:
for($i=0; $i<100; $i++) {
echo '第'. $i .'周往返北京大连
';
if($i == 17){
goto end;
}
}
end:
echo '集团公司要求停止此项';
?>
注:goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。
PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。
也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break。