一、php 数据类型之查看和判断数据类型
查看数据类型
1.gettype(传入一个变量)
能够获得变量的类型
2.var_dump(传入一个变量) 输出变量类型和值
<?php
//声明一个变量 88.8
$f = 88.8;
$type = gettype($f);
echo $type;
?>
<?php
//多换几个类型试试
$str = '你喜欢尊上还是喜欢杀仟陌?';
var_dump($str);
?>
判断数据类型
我们使用 is_* 系列函数。 is_types
这一系列的函数,来进行判断某个东西是不是某个类型。如果是这个类型返回真,不是这个类型返回假。
is_int 是否为整型
is_bool 是否为布尔
is_float 是否是浮点
is_string 是否是字符串
is_object 是否是对象
is_null 是否为空
is_resource 是否为资源
is_scalar 是否为标量
is_numeric 是否为数值类型
is_callable 是否为函数
is_array 是否是数组
<?php
//is_* 系列函数特点,如果是这个类型就返回的是真。不是这个数据类型就返回的是假
//声明类型为假
$fo = false;
if(is_bool($fo)){
echo '执行真区间';
}else{
echo '执行假区间';
}
//检查未声明的变量$p 是否为空,为空就执行真区间
if(is_null($p)){
echo '执行真区间';
}else{
echo '执行假区间';
}
echo "<br/>";
//字符串类型的数值,看看执行的是真还是假
$str = '18.8';
if(is_numeric($str)){
echo '执行真区间';
}else{
echo '执行假区间';
}
echo "<br/>";
//把 sca 的值换成整型、浮点、布尔和字符串试试
$sca = true;
//如果为标量,执行真区间<?php
//is_* 系列函数特点,如果是这个类型就返回的是真。不是这个数据类型就返回的是假
//声明类型为假
$fo = false;
if(is_bool($fo)){
echo '执行真区间';
}else{
echo '执行假区间';
}
//检查未声明的变量$p 是否为空,为空就执行真区间
if(is_null($p)){
echo '执行真区间';
}else{
echo '执行假区间';
}
echo "<br/>";
//字符串类型的数值,看看执行的是真还是假
$str = '18.8';
if(is_numeric($str)){
echo '执行真区间';
}else{
echo '执行假区间';
}
echo "<br/>";
//把 sca 的值换成整型、浮点、布尔和字符串试试
$sca = true;
//如果为标量,执行真区间
二、php 流程控制之 if else 语法
<?php
//我们定义一个泡到美女的变量($pao)为 true,意思为泡到了
$pao = true;
if($pao){
echo '我愿意去死';
echo '林志玲,我爱死你了。';
}else{
echo '我不愿意去死';
echo '凤姐,我肯定不会爱你的';
}
//if...else 执行结束,后续代码
?>
三、php 算术运算
<?php
$x = 5;
$y = 6;
//5+6 为 11
echo $x + $y;
?>
php 自加自减
自加自减,就是把自己加 1,或者减
1。如果你学习过其他编程语言。你会发现,此处 的用法又是计算机里面的一个规定。可以这样用,用起来更加简洁。
上面的用法其实挺简单的,按照上面的例子。我们分成步骤去,按过程去判断即可。
<?php
$x = 5;
//先赋值后加:即先将$x 的值赋值给$y。$x 的值为 5,所以将$x 的值赋值给$y。$y 也为 5
$y = $x++;
//$x 的结果输出为 6,因为赋值给$y 后,$x 自己又把自己进行了+1 操作。所以,$x 的结果
为 6
echo $x;
?>
php 比较运算符
<?php
$x = 5;
$y = 6;
//因为 5 大于 6 不成立,所以为错的。即为 false 执行了假区间
if($x > $y){
//真区间
echo '变量 x 大于 变量 y,成立';
}else{
//假区间
echo '变量 x 大于 变量 y,不成立';
}
?>
//使用 php 比较两个整数大小
php 逻辑运算
<?php
$x = true;
$y = false;
//逻辑与(并且),要求两个都为 true 才执行真区间,所以代码中执行假区间
if($x && $y){
echo '执行了真区间';
}else{
echo '执行了假区间';
}
?>
php 位运算
<?php
//$x 二进制值为:
$x = 5;
//$y 二进制值为:
$y = 8;
//结果为 13
echo $x ^ $y;
?>
异或解释:如果 x,y
两个值不相同,则异或结果为
1
。如果
x,y
两个值相同,异或结果为
0
。
由此可推
1101
为
$x
和
$y
异或出来的结果,
1101
用二进制转
10
进制工具转换后的结果就
为
13
。
php 三元运算符和其它运算符
<?php
$x = true;
$x ? $y = 5 : $y = 6;
// bash 语法 [ $a -eq 0 ] && echo 1 || echo 0
//输出 5
echo $y;
?>
<?php
echo '<pre>';
echo `ipconfig`;
echo '</pre>';
?>
四、PHP 流程控制
if 条件结构流程
王同学是生活极度充满娱乐化和享受生活的人。他抵达北京或者大连的时候做的事,他抵达 后做的事情,如下:
半夜到达,先去夜店参加假面舞会
早上抵达,爱在酒店泡个澡
中午到达,会吃上一份神户牛肉
晚上到达,总爱去找朋友去述说一下心中的寂寞
<?php
if(判断语句 1
)
{
执行语句体 1
}else if(判断语句 2){
执行语句体 2
}else if(判断语句 n){
执行语句体 n
}else{
最后的 else 语句可选
}
//后续代码
?>
<?php
//定义一个随机变量,抵达时间,随机 0 点至 23 点
$dida = rand(0,23);
if($dida > 6 && $dida < 10){
echo '我爱泡澡';
}else if($dida >10 && $dida < 14){
echo '吃神户牛肉';
}else if($dida >=19 && $dida < 22){
echo '找一个朋友聊聊内心的寂寞';
}elseif($dida > 22 && $dida <= 23){
echo '泡澡';
}elseif($dida >= 1 && $dida <3){
echo '泡澡';
}else{
echo '睡觉或者工作';
}
?>
if 语句多种嵌套
王思总同学在出行和项目中也是极度有计划性。他给自己的生活秘书和
工作秘书
分别指派
了出差的行程:
生活上:
先查天气,下雨带雨具和毛巾。不下雨要带防晒霜
雨具、毛巾和防晒霜的情况要提前检查,如果没有要及时买
工作上:
要提前沟通去大连前的工作计划,准备好了要及时检查,检查合格,打印签单。
没有及时准备好的情况下,要列出主要的项目沟通议题。
类似于上面的这种情况判断,我们就需要用到if...elseif...else反复嵌套的结构 了。
在if语句中可以嵌套一个或多个if语句,以实现对多个参数的判断,这就是if语句的
多种嵌套。其结构形式如下:
多种嵌套。其结构形式如下:
<?php
if(判断 1){
if(判断 2){
代码段 1
}else{
代码段 2
}
}else{
if(判断 3){
代码段 3
}else{
代码段 4
}
}
?>
<?php
//0 表示工作秘书,1 表示生活秘书
//用代码模拟随机产生当前的工作是生活秘书的还是工作秘书的
$mishu = rand(0,1);
if($mishu){
//下雨和不下雨的状态,随机产生
//下雨状态为 1
//不下雨状态为 0
$xiyu = rand(0,1);
if($xiyu){
//是否购买雨伞
$you = rand(0,1);if($you){
echo '下雨天,已购买不用买雨伞';
}else{
echo '下雨天,未购买,需要买雨伞';
}
}else{
//是否购买防晒霜
$you = rand(0,1);
if($you){
echo '没下雨,有防晒霜';
}else{
echo '没下雨,需要准备防晒霜';
}
}
}else{
//是否准备好了会议议程
$shifou = rand(0,1);
if($shifou){
echo '已准备好,可以随时出发';
}else{
echo '没有准备好,需要打印,延迟出发';
}
}
switch 语句的使用(多分支的 if 语句变种)
switch...case的语法结构如下
上面的break、default是可选的
不要在case后面写成分号,后面是冒号:
不要在case后面写判断区间,如($foo > 20 或者 $foo == 30)
switch里面在变量最好是 整型,字符串,因为布尔判断更适合if...else..
<?php
//定义出行工具
$tool=rand(1,6);
switch($tool){
case 1:
echo '司机开车';
break;
case 2:
echo '民航';
break;
case 3:
echo '专机';
break;
case 4:
echo '动车';
break;
case 5:
echo '骑马';
break;
case 6:
echo '游轮';
break;
}
?>
do/while 循环语句的使用:
王同学需要反复往返于北京和大连,就是典型的循环结构。假设王思总投资这个项目需要往返大连100次,每次往返都王同学都会计数一次。难道我们写一百遍同样的代码?显然对于智商极高的程序员来说不可能这样处理。 我们抽象了人类的这种思维。我们定义一种循环结构
<?php
//定义需要往返的次数,老外喜欢从 0 开始计数,我们也从 0 开始计
$count = 0;
//while 后面接布尔值判断,为真执行,为假停止
//$count 小于 5 的时候执行,也就是$count 为 0 至 5 的时候执行
//如果$count 不小于 5 了,循环停止执行后续的代码
//循环开始处
while($count < 5){
echo '我是王思总,我是第' . $count .'次出差<br />';
//每次执行让$count+1,这样的话,就不会产生$count 永远小于 100 的情况了
$count++;
//循环结束
}
echo '后续代码';
?>
下面我们来看看do...while与while的区别
do...while与while的语法结构基本一样,也是一个布尔型循环,功能也基本一样。
基本语法规定如下:
echo '//do while 循环//'."<p>";
$i = 5;
do {
echo $i."<p>";
$i--;
} while ($i > 0);
echo '//do while 循环至少进入循环一次//'."<p>";
$i = 0;
do {
echo $i."<p>";
$i--;
} while ($i > 0);
do...while与while的区别是,它们的值的检查时机不同。
do-while不论while判断是否成立,先执行一次代码代码块循环语句,保证会执行一次(表
达式的真值在每次循环结束后检查)。
然而我们之前的while循环会检查布尔判断区域,成立则执行。不成立则不执行。
for 循环语句的使用
同学反复往返与北京和大连,并且在本上记录往返次数。在PHP
中还有另外一种实现方式能够实现同样的计数。
for
循环是
PHP
中的一种计数型循环,它的语法比较数活多变。这是一个必须要掌握的知识点。
for (表达式 1;
表达式
2;
表达式
3){
需要执行的代码段
}
表达式1
是初始化赋值,可以同时赋值多个代码。
表达示2
在每次循环开始前求值。如果值为
TRUE
,则继续循环,执行嵌套的循环语句。
如果值为 FALSE
,则终止循环。
表达示3
在每次循环之后被求值。
我们来写个简单的例子,看看:
<?php
for ($i=1; $i<=5; $i++) {
echo '分手后第'.$i.'年,我全都忘了你的样子
<br>';
}
?>
goto 循环语句的使用
<?php
goto wan;
echo '天王盖地虎';
wan:
echo '小鸡炖蘑菇';
?>
例 1(记得把 php 版本切换到>=php5.4 版本以上):
<?php
for($i=0; $i<10; $i++) {
echo '第'. $i .'周往返北京大连<br />';
if($i == 5){
goto end;
}
}
end:
echo '集团公司要求停止此项';
?>
五、、PHP 函数
<?php
function security(){
echo '你要好好学习网络安全';
echo '否则,你就会找工作困难';
}
security();
security();
?>
<?php
echo '//函数传 1 个参数//'."<p>";
function oldboy($i){
echo '你要持续好好学习,'."<br>";
echo '否则等你到了' .$i."岁,就会被淘汰。"."<br>";
}
echo oldboy(34);
?>
<?php
echo '//函数传多个参数//'."<p>";
function oldgirl($x,$y){
echo '你要持续好好学习,'."<br>";
echo '否则等你到了' .$x."岁,就会被淘汰。"."<br>";
echo '我在' . $y ."岁,的时候,就成为了黑客。"."<br>";
}
echo oldgirl(34,28);
?>
备注:
1
、函数名只能是字母,数字,下划线组合,并且之间不能包含空格,数字不能放在变量名
首位。
2
、函数名与变量命名规则一样,但是不同的是:函数名不区分大小写
3
、函数体的参数若是定义了,未传参数,代码会报错
4
、函数后参数如果有默认值,参数可以不填,代码也不会报错
5.
函数后的参数可以写多个
6.
函数后如果有默认值和无默认值的参数,通常把无默认值的参数写在最前面
7.
函数体的变量与函数体外的变量没有关系
9.
函数体中若有
return,return
后的代码不执行
8.
函数执行完后
,return
可把函数体内的值,带带函数体外
9.
函数的执行没有顺序关系,可以在定义处之前的位置调用
10.
函数不能重载
文件包含函数
在实际开发中,常常需要把程序中的公用代码放到一个文件中,使用这些代码的文件
只需要包含这个文件即可。这种方法有助于提高代码的重用性,给代码的编写与维护带来
很大的便利。在
PHP
中, 有
require
、
require_once
、
include
、
include- once
四种方法包含一
个文件。
1
,
include
包含函数的功能。
创建一个
functions.php
文件,里面写上两个函数:
<?php
//functions.php 文件
function demo(){
echo 'oldboy';
}
function test(){
echo 'oldgirl';
}
?>
在functions.php
的同级目录下,我再创建一个
user.php
文件把
functions.php
文件包含进
来。这样我的函数就可以专门放在functions.php
里面,哪儿需要用到这些函数的时候,我
就从哪儿包含进来:
<?php
//user.php
include 'functions.php';
//可以直接调用
demo();
test();
?>