php变量转换测试与常量
php的八种变量
1、整型($ num=10 )
2、浮点型($ num=10.5)
3、布尔型($ str=ture or flase)
4、数组 ($ arr=array(‘1’,‘2’,‘3’)
5、字符串($ str=‘hello world’)
6、资源($ link=资源)
7、null
8、对象
<?php
class person{
public $ name='bk';
public $ age='20';
public $ sex='men';
public function say(){
echo "my name is {$this->name}";
}
}
$bk=new person();
echo $bk->say();
?>`
定义一个人具有名字等功能,并输出他的名字。
修改页面编码
当我们在编写php时遇见汉字,如果不表明编码则可能会出现乱码现象
因此我们会在写php的开头表明所使用的编码,有下面三种表明形式:
1、header('content-type:text/html;charset=utf-8');
2、<meta http-equiv='content-type' content='text/html;charset=utf-8'>
3、<meta charset='utf-8'>
判断变量是否存在
1、isset();//判断变量是否被设置
返回结果为变量不存在的情况,若为空则未定义即null;
2、empty();//判断变量是否为空
变量为空的情况有:null、 (空格)、“0”、false、aeeay()、0、0.0、;
变量的输出方法与用法
1、echo
2、var_durmp() //输出的同时会打出结果的字节数
3、print //格式化输出
4、sprintf //只返回不打印 返回字符串
5、print
变量的类型测试
使用echo_gettype();
不能精准的判断类型(返回string)
使用var_durmp(is_*($));
精准的判断类型(返回bool)
echo打印布尔类型的值
会将 ture看为1;将flase看为 ’空格‘;
变量类型自动转换
1、整形可以自动转换为字符串形式
2、字符串转换为整型时只能转换为字符串前面的数字
3、字符串转换为布尔型为假
强制类型转换
(int)
(float)
(bool)
(string)
(array)
(object)
例:<?php
$a='10';
var_dump((int)$a);
?>
常量的定义域使用:define(‘XXX’,‘内容’);//XXX必须为大写
<?php
define('HOST','localhost');
define('USER','user1');
define('PASS','1223');
?>
判断一个常量是否存在:defined(‘XXX’);//返回一个bool值
预定义常量
即系统已经表明好的常量我们可以直接使用
LINE//所在位置的行列数,
FILE//打印出文件所在的电脑目录
"echo _FILE_.'-->'_LINE_"
M_PI//圆周率
FUNCTION//打印出当前函数名
<?php
function show(){
echo 'my name is '.__FUNCTION__.'' ;
}
show();
?>
运算符
一元运算
++; --;
二元运算符
1、数字运算符:
+;-;*;%(除);/(余);
2、赋值运算符:
=;+=;*=;-=;%=;/=;.=;
3、比较运算符:
== ;!=;>;<;>=;<=;=== ;!==;
4、逻辑运算符(开关:&&前面为ture则开,||前面为flase则开)
三元运算符
$a?$b:$c
与
if($a)
{echo b;}
else{echo c;}
相同
在这之中$a为条件
运算级的优先
1、++,–,
2、*,/,%,
3、+,-,.,
4、< <= > >=
5、== != === !==
6、& |
7、&& ||
8、? :
9、= += -= *= /= %=
另外的运算符:@;->;new;=>;instanceof;
流程控制与函数
流程控制:
单分支机构:if…else
多分支结构:if…elseif…else ; switch ;
循环结构:while ; for ;
特殊流程控制
break(结束整个循环) ; continue(结束本次循环) ; exit(结束页面脚本) ; die() (与exit效果大致相同);
函数中的return与echo的区别:
基本用法:return有返回值;echo无返回值;
对于两种用法更倾向于使用return不推荐使用echo
原因 :return用法更为灵活能够在使用函数的时候添加一些其他东西
echo用法在使用函数添加东西时会导致输出信息倒序等情况
判断是否为内置函数:function_exists(‘xxx’);
函数
语言结构:
if() ;for() ;while() ;switch() ;array() ;echo() ;print() ;list() ;isset() ;unset() ;freach() ;exit() ;die();include() ;require() ;empty() ;
语言结构不属于函数类型无法被查询函数查询
系统函数:
count() ;
array_merge() ;等等
自定义函数:
匿名函数
变量的局部性
局部变量:在函数中定义的变量
全局变量:函数外定义的变量
连接局部与全局:global $x;
<?php
$i=10;
function show(){
global $i;//将全局变量i链接到函数内
$i++;}
show();
echo $i;
?>
超全局变量:
· 常量
· 预定义常量
· 超全局数组
静态变量: static $i ;(函数内统同一 个变量在同名函数调用多次的情况下能够连续使用)
函数与参数
1、默认参数
<?php
function sum($i,$j);
{return $i+$j;}
echo sum(1,9)//将值分别赋值给i与j
?>
2、回调参数
用一个函数的参数调用另一个函数
<?php
function show($i,$j,$s){
return $s($i,$j);//调用s所赋值的sum函数,将i与j的值分别传递给了a与b
}
function sum($a,$b){
return $a+$b;//计算a与b,并返回
}
echo show(1,9,'sum');//将1与2赋值给i与j,将函数sum赋值给s
?>
3、引用参数
<?php
$i=100;
function show(&$i){
$i++;
}
show($i);//将全局变量i的地址传递给了局部变量i因此局部变量具有了100的值
echo $i;//最后输出101
?>
附:&符的解释
<?php
$a=10;
$b=&$a;//当没有&符时的结果为10,当有&符的结果为100
$b=100;
echo $a;
?>
在这段代码中&符所起的作用是:将a的引用地址传递给b。因此当输出a时其实是将b的值传递到了a的身上
1、变量函数
使用变量调用函数
<?php
function show(){
echo'11112222<br>';
}
$var='show';//将一个函数名赋给一个变量
$var();//用变量调用了函数
?>
2、可变个数参数的函数:
‘func_get_args()’
‘func_num_args()’
<?PHP
function show(){
$arr=func_get_args();//输出为数组型将传入的参数以数组形式输出
echo "<pre>";
print_r($arr);
echo"<pre>";
$num=func_num_args();//输出传入参数的个数
ehco show;
}
show(1,2,3,4,5,'q','w','e','r')
?>
3、递归函数
<?php//用递增函数表达数字的递加
$n=3;
function sum($n){
static $tot;//将tot设置为静态变量
$tot+=$n;
if($n>1){
sum($n-1);
}
return $tot;//返回tot的值
}
echo sum($n);
?>
递归函数的案例:
<?php
$n=3;
function sum($n){
echo"<p>{$n}<p>";//第一层输出第一个数‘3’;第二层输出‘2’;第三层输出‘1’
if($n>1){
sum($n-1);//n=3满足条件,即重新调用函数这时n=2为第二层;n=2满足条件,即重新调用函数这时n=1为第三层;
}
echo"<p>{$n}<p>";//n=1不满足条件输出第三层的‘1’;在完成第二层的‘2’;在完成第一层的‘3’;
}
sum($n);//调用函数(设为第一层)
?>
即结果为3 2 1 1 2 3
数组元素
1、下标|键|key
2、值|value
数组的分类
索引数组
$arr=array(1、2、3);
更改key值
<?php
$arr=array(5=>1,10=>3,15=>5);//更改key值
echo $arr[5];//输出1
?>
自动补充key且自动累加
<?php
$arr[0]='a';
$arr[]='b';
$arr[]='c';
$arr[]='d';
echo "<pre>";
print_r($arr);
echo "<pre>";
?>
关联数组
1、
$arr=array('name'=>'user','age'=>'18','sex'=>'nan');
2、
$arr['name']='user';
$arr['age']='18';
$arr['sex']='nan';
混合数组
$arr=array(1,2,3);
$arr=array('user','age'=>'18','sex'=>'nan');//user的key为0其余为指定的key
多维数组的定义方法
一般建议不大于三维数组
二维数组
<?php
$arr['name']='user';
$arr['age']='18';
$arr['sex']=array(1,2,3);//将数组中套数组进行输出,也可以重复套娃。
echo "<pre>";
print_r($arr);
echo "<pre>";
echo $arr['sex'][2];//多维数组取值
?>
查看数组的内容打印数组
print_r();更清晰
var_dump();比较乱
数组遍历
<?php
$arr=array('user',18,'nan');
list($a,$b,$c)=$arr;//将三个value分别赋值给a、b、c;
echo $a;
echo $b;
echo $c;//输出
?>
<?php
$arr=array('user',18,'nan');
$arr2=echo($arr);
echo "<pre>";
print_r($arr2);
echo "</pre>";
?>
foreach数组遍历
<?php
$arr=array('name'=>'stu','age'=>20,'sex'=>'men');
foreach($arr as $k => $v){
echo"<h2>{$k}:{$v}</h2>";
}
?>
超全局数组
$_GET//专门用来接收地址栏中的参数
$_SERVER
['SERVER_NAME'] 服务器域名
['REMOTE_ADDR'] 客户端ip
['SERVRT_ADDR'] 服务ip
['SERVRT_ADDR'] 服务器端口
['Document_root']当前脚本的系统绝对路径
['REQUEST_URI']当前脚本网站绝对路径
['PHP_SELF'] 当前脚本的网站绝对路径
$_POST//form...post传参;
$_REQUEST//同时可以接受POST与GET的传参
$_FLIES
$_COOKIE
$_SESSION
$GLOBALS//分别可以包含$_GET、$_POST、$_COOKIE、$_FLIES数据
表单数据如何提交给php文件
1、text数据
2、password数据
3、radio单选数据
4、checkbox多选数据
5、 select下拉菜单数据
6、多选下拉菜单数据
7、textarea文本域数据