2015.9.13 PHP学习入门篇

学习地址:http://www.imooc.com/learn/54

说明:http://www.jb51.net/article/29176.htm

微信登陆 密码12956Sxy

1、了解PHP中的变量、变量的类型、常量等概念 2、认识PHP中的运算符,掌握PHP中顺序结构、条件结构、循环结构语句



1.在每一条PHP代码行结尾处都会有一个分号

<p>
    <?php 
    echo "欢迎同学们!";
    echo "Welcome" . " to imooc!";
    echo 1+2+3+4+5;
    ?>
</p>

2.注释语句可以在PHP程序的任意位置(但注释语句一定要写在<?php ?>之间)。
3.WAMPSERVER集成环境下下载和安装
4.

<?php 
$var_name="苹果";
$n=10;
var_dump($var_name);
var_dump($n);
//var_dump函数可以将变量数据类型显示出来
?>

5.变量名除了需要“$”进行标识外,还有一些规则需要遵守。就像拿到驾驶证以后,还得遵守交通规则。变量名的命名规则主要有三条:


(1)、变量名必须以字母或下划线 “_”开头,如”$_name”,”$name” ,”$name2”等,但是”$9name”是不对的。


(2)、变量名只能由字母、数字、以及“_”组成,还能包含汉字。如”$_qq”,”$qq308” ,”$my_apple”,“比如"$name我等”,但是”$name*”是不对的。

(3)、变量名不允许包含空格。当变量名由多个单词组成,建议使用“_”进行分隔(比如 $my_apple),俗称下划线法,或者以大写字母开头比如 $myApple,俗称骆驼式命名法(也称驼峰命名法)。


特别需要注意的是,在PHP中变量名是区分大小写的,如“$my_book”与“$my_Book”代表两个不同的变量。

6.可以通过使用“memory_get_usage”获取当前PHP消耗的内存。

7.在PHP中,支持8种原始类型,其中包括四种标量类型、两种复合类型和两种特殊类型。PHP是一门松散类型的语言,不必向PHP声明变量的数据类型,PHP会自动把变量转换为自动的数据类型,一定程度降低了学习PHP的门槛。如果接触过C语言或者JAVA语言,就会发现在声明变量的时候需要声明变量的数据类型。

打印结果:string(12) "就是就是"

int(9494)

8.

标量类型—布尔类型
布尔类型(boolean):只有两个值,一个是TRUE,另一个FALSE,可以理解为是或否。它不区分大小写,也就是说”TRUE”和“true”效果是一样的。主要用在条件结构(条件结构在后面部分会介绍)中,例如判断是否满足条件的时候,是用“true”表示满足,用“false”表示不满足。需要注意的是,当我们用”echo”指令输出布尔类型时,如果是“true”则输出的是“1”,“false”则什么也不输出。我们可以使用“var_dump”函数,获取它真正的数据类型。

9.

整型(integer):类似于常见的整数。它可以用十进制、八进制、十六进制指定。十进制就是日常使用的数字;八进制,数字前必须加上“0”(这个0是阿拉伯数字0,可不是英文字母“欧”哦);十六进制,数字前必须加“0x” (这个0也是阿拉伯数字0,不是“欧”哦)。

10.

当你的字符串中包含引号的时候,我们怎么办?

1.在单引号中嵌入双引号;
2.在双引号中嵌入单引号;
3.使用转义符“\”(后面部分还有介绍)


打印结果:

甲问:'能告诉我网址吗'
乙答道:"www.imooc.com"
11.


12.


<?php 
$string1 = <<<lesliealga
我有一只小毛驴,我从来也不骑。
有一天我心血来潮,骑着去赶集。
我手里拿着小皮鞭,我心里正得意。
不知怎么哗啦啦啦啦,我摔了一身泥.
lesliealga;

echo $string1;
?>
注意<<<右边不能有空格

13.第一种特殊类型—资源
资源(resource):资源是由专门的函数来建立和使用的,例如打开文件、数据连接、图形画布。我们可以对资源进行操作(创建、使用和释放)。任何资源,在不需要的时候应该被及时释放。如果我们忘记了释放资源,系统自动启用垃圾回收机制,在页面执行完毕后回收资源,以避免内存被消耗殆尽。

<?php 
//首先采用“fopen”函数打开文件,得到返回值的就是资源类型。
$file_handle=fopen("/data/webroot/resource/php/f.txt","r");
if ($file_handle){
    //接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字
    while (!feof($file_handle)) { //判断是否到最后一行
        $line = fgets($file_handle); //读取一行文本
        echo $line; //输出一行文本
        echo "<br />"; //换行
    }
}
fclose($file_handle);//关闭文件
?>

14.第二种特殊类型—空类型
NULL(NULL):NULL是空类型,对大小写不敏感,NULL类型只有一个取值,表示一个变量没有值,当被赋值为NULL,或者尚未被赋值,或者被unset(),这三种情况下变量被认为为NULL。


15.

什么是常量
什么是常量?常量可以理解为值不变的量(如圆周率);或者是常量值被定义后,在脚本的其他任何地方都不可以被改变。PHP中的常量分为自定义常量和系统常量(后续小节会详细介绍)。

自定义常量是根据我们开发的需要,而定义的常量,它通过使用PHP中的函数define()定义。

define()函数的语法格式为:
bool define(string $constant_name, mixed $value[, $case_sensitive = true])
它有3个参数(也就是原料):
第一个参数“constant_name”为必选参数,常量名称,即标志符,常量的命名规则与变量的一致,但是要注意哦,它可不带美元符号哦。第二个参数“value”为必选参数,它是常量的值。第三个参数“case_sensitive”为可选参数,指定是否大小写敏感,设定为true表示不敏感,一般不指定第三个参数的情况下,默认第三个参数的值为false。
(注: string表示参数类型为字符串类型,mixed表示参数类型可以接受为多种不同的类型,case_sensitive = true表示默认为布尔类型TRUE)


任务
咱也来定义一个常量玩玩!


当我们需要计算圆面积时,我们就需要使用圆周率,这时我们就可以将圆周率定义为常量“PI”(通常常量都全用大写),取值为3.14。在右边编辑器中输入两条指令,第3行输入第一条指令“define("PI",3.14);”,第4行输入第二条指令“define($p,3.14);”,如图所示:

<?php
$p = "PII";
define("PI",3.14);
define($p,3.14);
echo PI;
echo "<br />";
echo PII;
?>
第一条指令,比较直观;第二条指令,使用起来比较灵活。运行结果如下:


3.14
3.14

常量的作用
常量有什么用呢?


常量主要功效是可以避免重复定义,篡改变量值。在我们进行团队开发时,或者代码量很大的时候,对于一些第一次定义后不改变的量,如果我们使用变量,在不知情的情况下,使用同一变量名时,变量值就会被替换掉,从而会引发服务器执行错误的任务。

此外,使用常量还能提高代码的可维护性。如果由于某些原因,常量的值需要变更时候,我们只需要修改一个地方。例如在做计算中,起初我们取圆周率为3.14,于是很多计算中我们都使用3.14进行计算,当要求计算精度提高,圆周率需要取3.142的时候,我们不得不修改所有使用3.14的代码,倘若代码量比较多时,不仅工作量大,还可能遗漏。




16.认识一下系统常量
系统常量是PHP已经定义好的常量,我们可以直接拿来使用,常见的系统常量有:


(1)__FILE__ :php程序文件名。它可以帮助我们获取当前文件在服务器的物理位置。


(2)__LINE__ :PHP程序文件行数。它可以告诉我们,当前代码在第几行。


(3)PHP_VERSION:当前解析器的版本号。它可以告诉我们当前PHP解析器的版本号,我们可以提前知道我们的PHP代码是否可被该PHP解析器解析。


(4)PHP_OS:执行当前PHP版本的操作系统名称。它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码。


<?php
echo __FILE__;
echo "<br />";
echo __LINE__;
echo "<br />";
echo PHP_VERSION;
echo "<br />";
echo PHP_OS;
echo "<br />";
?>

17.

常量如何取值
定义了常量,那么就要使用常量,那么如何获取常量值呢?

获取常量值的有两种方法取值。第一种是使用常量名直接获取值;例如计算圆周率的面积,如下(“*”是运算符,相当于乘号,后面部分的小节会介绍):
<?php
define("PI",3.14);
$r=1;
$area = PI*$r*$r; //计算圆的面积
?>
第二种是使用constant()函数。它和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上要灵活、方便,其语法格式如下:

mixed constant(string constant_name)
第一个参数constant_name为要获取常量的名称,也可为存储常量名的变量。如果成功则返回常量的值,失败则提示错误信息常量没有被定义。(注:mixed表示函数返回值类型为多种不同的类型,string表示参数类型为字符串类型)


例如:



任务
试试constant函数取值!

在右边编辑器中输入一条指令,在15行输入指令“$area= constant($p)*$r*$r;”,如图:



18.如何判定常量是否被定义
如果常量被重复定义以后,PHP解析器会发出“Constant XXX already defined”的警告,提醒我们该常量已经被定义过。那么,在团队开发,或代码量很大的情况下,我们如何去判定一个常量是否被定义呢?


defined()函数可以帮助我们判断一个常量是否已经定义,其语法格式为:


bool defined(string constants_name)
它只有参数constant_name,指的是要获取常量的名称,若存在则返回布尔类型true,否则返回布尔类型false; (注:bool表示函数返回值类型为布尔类型)


19.什么是运算符?运算符是告诉PHP做相关运算的标识符号

PHP运算符一般分为算术运算符、赋值运算符、比较运算符、三元运算符、逻辑运算符、字符串连接运算符、错误控制运算符。例如:一条指令“$c = $a + $b;”。


20.

PHP中的赋值运算符
PHP的赋值运算符有两种,分别是:
(1)“=”:把右边表达式的值赋给左边的运算数。它将右边表达式值复制一份,交给左边的运算数。换而言之,首先给左边的运算数申请了一块内存,然后把复制的值放到这个内存中。
(2)“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。



21.比较运算符


22.三元运算符



23.

PHP中的逻辑运算符
逻辑运算符主用是进行逻辑运算的,例如:逻辑与、逻辑或、逻辑异或、逻辑非等,在PHP中常用的逻辑运算符如下表:(点击看大图)

我们可以从投票的角度来理解逻辑运算:
1、逻辑与:要求所有人都投票同意,才会通过某协议;
2、逻辑或:只要求一个人投票同意就行;
3、逻辑异或:只能有且只能有一个人投票同意;
4、逻辑非:某个人要反对,但是通过逻辑非,使其反对无效;
“与”和“或”有两种不同形式运算符的原因是它们运算的优先级(就是运算的有限顺序,比如我们小学的时候学习四则运算,加减乘除混合在一起啦,优先计算乘除,再计算加减)不同。

任务
我来试一试:大家来投票吧!
我们假设有A、B、C、D进行了投票,然后我们用逻辑运算符,来判定他们的投票是否能通过某些协议。在右边编辑器中输入六条指令,分别是第7行,第9行,第11行,第13行,第15行,第17行,如下图所示:
其中第7行,第9行,第11行需要括号括起来,因为这三个逻辑运算符的优先级没有三元运算符高。运行结果如下:



24.PHP中的字符串连接运算符

字符串连接运算符是为了将两个字符串进行连接,PHP中提供的字符串连接运算符有:
(1)连接运算符(“.”):它返回将右参数附加到左参数后面所得的字符串。
(2)连接赋值运算符(“.=”):它将右边参数附加到左边的参数后。

<?php 
    $a = "张先生";
	$tip=$a.",欢迎您在慕课网学习PHP!";
	
    $b = "东边日出西边雨";	
    $b.=",道是无晴却有晴";
    
	$c = "东边日出西边雨";	
    $c = $c.",道是无晴却有晴";
    
	echo  $tip."<br />";
	echo  $b."<br />";
	echo  $c."<br />";
?>
代码结果:

张先生,欢迎您在慕课网学习PHP!
东边日出西边雨,道是无晴却有晴
东边日出西边雨,道是无晴却有晴


25.没看懂::::::PHP中的错误控制运算符
PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;


如果激活了track_error(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。


需要注意的是:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。


26.PHP中的算术运算符(2)

假设我们要在一个考场安排了一场考试,对考生从1开始,都进行了编号,那么怎么让服务器帮助我们计算考生在的位置呢,进而打印考场的考生对照表呢?在右边编辑器里输入两条指令。

<?php 
     $maxLine = 4; //每排人数
	 $no = 17;//学生编号
     
     $line=ceil($no/$maxLine);
     //ceil() 函数向上舍入为最接近的整数。
     $row=$no%$maxLine?$no%$maxLine:$maxLine;
//用三元运算符是因为如果是4的倍数,没有余数,这就应该是没排的第4个位置,即 $maxLine ;如果有余数,则取余数作为位置数。
	 echo "编号<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>个位置";
?>

代码结果:编号17的座位在第5排第1个位置


27.do while的例子挺好的



28.PHP中循环结构之do…while语句的运用优势举例

while和do...while可以根据具体情况选用。假设有一种棋类游戏,首先掷骰子,若不为6,前进骰子的点数的步长;若为6,前进骰子的点数的步长,并可以再掷一次。

29.PHP中循环结构之foreach循环语句(任务一)



29.PHP中结构嵌套之循环嵌套
循环结构嵌套,就是类似于跑多个足球场,例如假设有两个足球场,一个大足球场,一个小足球场,在大足球场跑一圈后,再到小足球场跑几圈,跑完几圈后,再到大足球场中继续跑。在遍历二维数组中很常用。

2012'=>array('曲洋',"89"),
'2013'=>array('任盈盈',"92"),
'2014'=>array('向问天',"93"),
'2015'=>array('任我行',"87"),
'2016'=>array('冲虚',"58"),
'2017'=>array('方正',"74"),
'2018'=>array('岳不群',"91"),
'2019'=>array('宁中则',"90"),
);//10个学生的学号、姓名、分数,用数组存储
 //可以这么理解:$students是二维数组,$val是数组中的各行,$v是行中各元素的值,输出时会将行中的所有元素按顺序一一输出,如果加上下标,则会在各个值前输出下标,如第一行的输出就是这样:   2010:0令狐冲159 当然也可以在输出元素之后换行,则可以看得更清楚明白了。
foreach($students as $key=>$val)
{ //使用循环结构遍历数组,获取学号 
     echo $key; //输出学号
	 echo ":";
	 //循环输出姓名和分数
foreach($val as $v)	 
	{
		echo $v; 
	 }
	 echo "<br />";
}
?>
代码结果:

2010:令狐冲59
2011:林平之44
2012:曲洋89
2013:任盈盈92
2014:向问天93
2015:任我行87
2016:冲虚58
2017:方正74
2018:岳不群91
2019:宁中则90


30.PHP中结构嵌套之循环结构与条件结构嵌套
有时候在执行任务时,对于一些特殊的任务还需要进行额外处理,这个时候就会将循环结构与条件结构嵌套使用。
任务
有个学生数组存储了学号和姓名,我们需要查找学号为“2014”的学生姓名,这时候我们就需要遍历该数组,并判定学号是否为“2014”。

<?php
 $students = array(
'2010'=>'令狐冲',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向问天',
'2015'=>'任我行',
'2016'=>'冲虚',
'2017'=>'方正',
'2018'=>'岳不群',
'2019'=>'宁中则',
);//10个学生的学号和姓名,用数组存储
$query = '2014';
//使用循环结构遍历数组,获取学号和姓名
foreach($students as $key =>$v)
{ 
    if($key == $query)
    //使用条件结构,判断是否为该学号
	{ 
		echo $v;//输出(打印)姓名
		break;//结束循环(跳出循环)  跳出foreach循环(if不是循环语句),把break放在if语句内是为了当判断为真的时候,执行输出姓名并且结束foreach循环。
	}
}
?>
代码结果:向问天



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值