PHP基础之常量与变量
1、变量:用来存储信息的空间大小 $var
2、常量:定义之后不可以更改,标识符,并且给其赋值,常量是全局,在整个页面中均可使用,常量一般有英文字母、下划线、数字组成,开头不能是数字和$
使用define(常量的key,常量的value,true/flase)定义,define(number,2)
true/false:大小写问题,true--->大小写不敏感,默认是true
define(str,“icq”);
echo STR; 不能打印不出 icq
3、字符串 “ ” ‘ ’
字符串中有需要引号的地方要用单引号“ ‘ ’ ”或者“ \”\" "
使用 . 拼接字符串
strlen() 计算字符串长度
strops(字符串,需要寻找的字符串) 查找字符串,返回首次索引的位置
4、运算符:+ - * / %(取余)
整除 echo intdiv(4,3)
\php7.3.4nts>php.exe -R "var_dump(intdiv(4,3));"
赋值运算符 = += -= *= /= %= .=(转化成字符串,拼接在一起)
自增自减 (i=8)
$a=i++ $a=8 i=9 先赋值,后加一
$a=++I $a=9 i=9 先加一,后赋值
$a=--I $a=7 i=7 先减一,后赋值
$a=i-- $a=8 i=7 先赋值,后减一
比较运算符
== 等于 ===绝对等于 !=或者<>不等于 !==绝对不等于 < > <= >=
逻辑运算符
&& and 与
|| or 或
! 非
xor 异或(有且只有一个为真时,则结果为真) 相同为0,不同为1
三元运算符:
条件?表达式1:表达式2---->条件为真时,执行表达式1,条件为假时,执行表达式2
isset($get_value)判断$get_value是否有值,为NULL时返回false
表达式1??表达式2 如果表达式1有值,则返回它的值,如果没有值,则执行表达式2(PHP7)
$i=$a<=>$b 太空船操作符,如果$a大,则$i=1;如果$b大,则$i=-1;如果相等,则$i=0(PHP7)
5、简易Web服务:IIS apache nginx tomcat
PHP: php -S 0.0.0.0:port
Python2: python -m SimpleHTTPServer port (默认端口为8000)
Python3: python -m http.server port
6、条件判断:
if(条件){条件成立时执行的代码;}
if(条件){条件成立时执行的代码;}else{条件不成立时执行的代码;}
if(条件){条件成立时执行的代码;}elseif elseif else
switch
<?php
echo "<meta charset='utf-8'>";
$color=$_GET['color'];
switch ($color) {
case 'red':
echo "红色";
break;
case 'green':
echo "绿色";
break;
default:
echo "喜欢的颜色不在这";
break;
}
?>
7、循环:
for(初始值,条件,增量){要执行的} 循环
<?php
echo "<meta charset='utf-8'>";
for ($i=0; $i < 5; $i++) {
echo "当前数字为:".$i."\n\n";
}
?>
foreach 循环
<?php
echo "<meta charset='utf-8'>";
$array = array("one","two","there","for");
foreach ($array as $value) {
echo $value."\n\n";
}
?>
<?php
$array = array("one","two","there","for");
$arr=array('one' =>1 ,"two"=>"2","three"=>true,"te"=>2e-10 );
foreach ($arr as $key => $value) {
echo $key." is ".$value."\n\n";
}
?>
while 循环
<?php
echo "<meta charset='utf-8'>";
$i=0;
while ($i<=10) {
echo "Number is".$i."\n\n";
$i++;
}
?>
do while 循环
<?php
echo "<meta charset='utf-8'>";
$i=1;
do {
echo "Number is".$i."\n\n";
$i++;
} while ( $i <= 10)
?>
8、数组: print_r(); 可以打印数组
在单个变量中储存多种类型的值
类型:数字型数组,关联型数组(键值对数组)、多维数组
数字型数组
$array=array("1",123,1.24,ture)
下标是从0开始的,长度使用count()函数计算,遍历使用for/foreach
关联型数组:
$array=array("k1"=>value1,"k2"=>value2)
下标是键,k1,k2,遍历数组使用for/foreach
多位型数组:
$array=array(array(1,2,3),array(4,5,6),array(7,8,9));
数组的排序:
升序:sort() 降序:rsort()
针对关联型数组的值,升序:asort()
针对关联型数组的值,降序:arsort()
针对关联型数组的键,升序:ksort()
针对关联型数组的键,降序:krsort()
9、超级全局变量:
$GLOBALS //包含全部变量的全局组合数组
<?php
$a=1;
$b=8;
function add()
{
$GLOBALS['c']=$GLOBALS['a']+$GLOBALS['b'];
}
add();
echo $GLOBALS["c"];
?>
$_SERVER //包含请求头中信息,用户的IP、用户UA、头信息等等
<?php
echo $_SERVER["PHP_SELF"]."<br>";
echo $_SERVER["SERVER_NAME"]."<br>";
echo $_SERVER["HTTP_REFER"]; //在那个页面跳转过来
echo $_SERVER["HTTP_USER_AGENT"]; //服务器的版本
?>
$_REQUEST //包含用户提交的所有数据(POST/GET/COOKIE等)
$-POST //包含用户POST方式发过来的数据
$_GET //包含用户GET方式发过来的数据
$_FILES //包含用户发过来的文件对应的数据
$_EVN //包含服务端环境变量的数组
$_COOKIE // 包含COOKIE中的数据
$_SESSION //包含了session中的数据
10、cookie和session的比较:
- cookie是存放在用户的浏览器中,是服务端通过返回包中set-cookie设置,cookie表示用户的浏览器和服务器之间会话状态,登录成功后方可获取cookie数据,该数据一般具有时效性,失效之后需要用户重新去登录。有了cookie数据之后,用户的每次请求都会带上cookie,服务端会验证该cookie的合法性和时效性,cookie的发送需要遵循浏览器的同源策略。
- session是存放在服务端的,表示用户和服务器时间的会话状态,session和cookie是一一对应的,服务器也需要记住哪个用户登录了该站点,一般情况下,session以文件的形式保存在/tmp文件中,形式为sess_XXX,例如:sess_5mt9vacml24gp0j5eru386iuf5,此刻服务器给浏览器分配的cookie是:5mt9vacml24gp0j5eru386iuf5,只要该cookie被修改过,那么服务器就要求用户重新登录。
11、有意思的常量(预定义常量):
__LINE__; 表示所在的行号
__FILE__ ; 表示当前文件的路径及文件名
__DIR__; 表示当前文件的路径
__FUNCTION__; 表示当前定义的函数名
__CLASS__; 表示当前类名
最新文章
- jQuery Mobile 导航栏
- Date 对象转换——toString、toTimeString、toDateString、toUTCString、toLocaleString()、toLocaleTimeString()、toLocaleDateString()
- python 代码片段20
- hihoCoder #1246 : 王胖浩与环 (数学)
- 提问:";~";运算符
- Visual Studio 2013智能提示失效解决办法
- C# &; SQLite - Storing Images
- curl javaSSm框架中传入json数组的格式方法
- Ajax (AppServ服务器练习)
- Spring4.0.1+Quartz2.2.1实现定时任务调度[亲测可用]
- jsp快速开始
- ESAPI学习笔记
- MySQL 各级别事务的实现机制
- Internet
- 《Linux内核》课本读书笔记 第三章
- IDEA引入外部jar包的方法
- hive sql split 分隔符
- MVC框架入门准备(一)
- 【划分树+二分】HDU 4417 Super Mario
- The Model represents your data structures.
热门文章
- 循序渐进nginx(三):日志管理、http限流、https配置,http_rewrite模块,第三方模块安装,结语
- asp.net core 3 使用nlog日志组件,使用$ {basedir}保存位置不对,记录下怎么解决
- Python编程之美:最佳实践指南PDF高清完整版免费下载|百度云盘|Python新手到进阶
- SpringBoot之整合Quartz调度框架-基于Spring Boot2.0.2版本
- 提取txt文本有效内容
- isinstance方法判断可迭代和迭代器
- PHP wordwrap() 函数
- luogu P3645 [APIO2015]雅加达的摩天楼 分块 根号分治
- LVS-DR:实现VIP和RIP不在同一个网络中的集群
- 题解 Luogu P1514 【引水入城】