PHP in action (基础篇)
来源:互联网 发布:imo聊天软件 编辑:程序博客网 时间:2024/06/15 05:02
2015-03-18 wcdj
摘要:PHP可以做什么,以及基本语法。
0 PHP是干啥的
为什么要学习PHP?“我可以用JavaScript来实现程序编写。”但JavaScript的能力是有限的,JavaScript通常运行在浏览器(客户端),它可以制作网页上面的特效:鼠标滑过背景改变颜色,还有网页上常见的鼠标滑过弹出菜单。但如果要让JavaScript实现显示“访问网站的总人数”,它就无能为力了,因为它只能获得客户端的信息,而“访问网站的总人数”是存储在服务器端的。所以就需要另外一种可以在服务器端运行的编程语言,PHP语言就是其中的一种,因为它可以运行在Web服务器端。
在学习PHP之前让我们来认识一下PHP及其功能。
1、运行在服务器端:学会了PHP,就可以指挥服务器给你干活,甚至是搞破坏^_^(千万不能真这么做咯),WEB网站的大部分数据都是存储在服务器端的,PHP就是用来处理这些存储在服务器的数据的(功能强大吧)。
2、跨平台:服务器可以是多种平台的服务器,比如Linux、Windows、Unix,你都可以指挥(不用怕只能指挥一种服务器啦吧)。
3、脚本语言:它是通过编写脚本,也就是一行行的计算机指令(也可以理解为特定的英文单词),来指挥服务器来工作的,因此,在编写PHP的过程其实就是与老外(服务器成老外啦)交流的过程,交流的语言就是PHP。
4、免费:免费使用(天下还真有免费的午餐)。
<!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>欢迎学习php!</title> </head><body> <p> <?php // this is a comment echo 'php learning, gerry'; echo 1024*4; ?></p> </body></html>
不同于HTML和CSS,在php中我们可以做计算,比如我们写入echo 12*3
计算机会计算出结果36
。如下代码:
<?php echo 12*3;?>
一个字符串是用双引号括起来的一个词或一个句字,比如:“Hi,imooc!”。你可以用PHP语言输出把这个字符串输出,像这样:
<?php echo "Hi,imooc";?>
也可以用单引号括起来,就像下面代码:
<?php echo 'Hi,imooc';?>
可以把两个字符用连接符
连接起来,像这样:
<?php echo 'Hi,'.'imooc';?>
注意: 连接符可以连接多个字符串,上面的例子就是把一个字符串拆分为二个小字符串,然后用一个连接符连起来。
在php中字符串连接符是用点(.)来表示的,这一点比较特殊,其它语言中是用加号(+)来表示的,比如:JavaScirpt、C。
在PHP中也有注释语句:用双斜杠(//)来表示。其它语言中,Html中使用<!--注释语句-->,CSS中使用/*注释语句*/。如下面代码:
<?php//输出hi,imoocecho "hi,imooc";?>
注释语句可以在PHP程序的任意位置(但注释语句一定要写在<?php ?>之间)。
注意:这个注释语句是为程序员准备的。
1 变量的用法
<?php $var = "hello"; echo $var;echo "<br />";$var = "world";echo $var;?>在PHP中变量名是区分大小写的,var_dump函数可以将变量的数据类型显示出来。
<?php $var_name = "apple";$n = 10;var_dump($var_name);var_dump($n);?>在变量中,由于变量占用的空间单元不一样(占的地盘大小不一样),也分成几种数据类型,就像超市商品的包装袋,有几种不同类型,不同的商品使用不同的包装袋。我们可以通过使用“memory_get_usage”获取当前PHP消耗的内存。
<?php echo $m1 = memory_get_usage(); echo "<br />";$var_string = "123";echo $m2 = memory_get_usage()-$m1; echo "<br />";$n = 123;echo $m3 = memory_get_usage()-$m1-$m2; echo "<br />";$f = 123.00;echo $m4 = memory_get_usage()-$m1-$m2-$m3; echo "<br />";$var_array = array("123");echo $m5 = memory_get_usage()-$m1-$m2-$m3-$m4; ?>分别定义四种不同的数据类型,分别是字符串类型,整型,浮点型和数组。初始化消耗了624056,字符串消耗328,整型和浮点型都是288,数组消耗632。
注意:根据操作系统、PHP版本以及PHP的运行方式可能输出结果会不同。
在PHP中,支持8种原始类型,其中包括四种标量类型、两种复合类型和两种特殊类型。PHP是一门松散类型的语言,不必向PHP声明变量的数据类型,PHP会自动把变量转换为自动的数据类型,一定程度降低了学习PHP的门槛。如果接触过C语言或者JAVA语言,就会发现在声明变量的时候需要声明变量的数据类型。
<?php $string = "就是就是"; var_dump($string); echo "<br />"; // string(12) "就是就是" $string = 9494; var_dump($string);// int(9494) echo "<br />";?>
布尔类型(boolean):只有两个值,一个是TRUE,另一个FALSE,可以理解为是或否。它不区分大小写,也就是说”TRUE”和“true”效果是一样的。主要用在条件结构(条件结构在后面部分会介绍)中,例如判断是否满足条件的时候,是用“true”表示满足,用“false”表示不满足。需要注意的是,当我们用”echo”指令输出布尔类型时,如果是“true”则输出的是“1”,“false”则什么也不输出。我们可以使用“var_dump”函数,获取它真正的数据类型。
<?php $man = "男";$flag = $man == "男";echo $flag ;// 1echo "<br />" ;var_dump($flag);// bool(true)?>
整型(integer):类似于常见的整数。它可以用十进制、八进制、十六进制指定。十进制就是日常使用的数字;八进制,数字前必须加上“0”(这个0是阿拉伯数字0,可不是英文字母“欧”哦);十六进制,数字前必须加“0x” (这个0也是阿拉伯数字0,不是“欧”哦)。
<?php$data_int1 = 123;// 十进制echo $data_int1;echo "<br />";$data_int2 = -123;// 负数echo $data_int2;echo "<br />";$data_int3 = 011;// 八进制echo $data_int3;echo "<br />";$data_int4 = 0x11;// 十六进制echo $data_int4;echo "<br />";?>
浮点型(浮点数、双精度数或实数),也就是通常说的小数,可以用小数点或者科学计数法表示。科学计数法可以使用小写的e,也可以使用大写的E。
<?php$num_float1 = 1.234;// 小数点echo $num_float1;echo "<br />";$num_float2 = 1.2e3;// 科学计数法,小写eecho $num_float2;echo "<br />";$num_float3 = 7.0E-2;// 科学计数法,大写Eecho $num_float3;echo "<br />";?>
字符串是由一系列字符组成,在PHP中,字符和字节一样,也就是说,一共有256种不同字符的可能性。
字符串型可以用三种方法定义:单引号形式、双引号形式和Heredoc结构形式。
<?php $str_string1 = '我是字符串';// 单引号$str_string2 = "我也是字符串哦";// 双引号echo $str_string1;echo "<br />";echo $str_string2;?>当你的字符串中包含引号的时候,我们怎么办?
<?php $str_string1 = '甲问:“你在哪里学的PHP?”';$str_string2 = "乙毫不犹豫地回答:'就不告诉你!'";$str_string3 = '甲:\'无语\'';$str_string4 = "乙:\"呵呵\"";echo $str_string1;echo "<br />";echo $str_string2;echo "<br />";echo $str_string3;echo "<br />";echo $str_string4;echo "<br />";?>
当双引号中包含变量时,变量会与双引号中的内容连接在一起;
当单引号中包含变量时,变量会被当做字符串输出。
<?php $love = "I love you!"; $string1 = "hi $love";// hi I love you!$string2 = 'hi $love';// hi $loveecho $string1;echo "<br />";echo $string2;?>
当我的字符串很长怎么办?
我们可以使用Heredoc结构形式的方法来解决该问题,首先使用定界符表示字符串(<<<),接着在“<<<“之后提供一个标识符GOD,然后是字符串,最后以提供的这个标识符结束字符串。<?php $string1 = <<< gerry我有一只小毛驴,我从来也不骑。有一天我心血来潮,骑着去赶集。我手里拿着小皮鞭,我心里正得意。不知怎么哗啦啦啦啦,我摔了一身泥.gerry;echo $string1;?>
NULL(NULL):NULL是空类型,对大小写不敏感,NULL类型只有一个取值,表示一个变量没有值,当被赋值为NULL,或者尚未被赋值,或者被unset(),这三种情况下变量被认为为NULL。
<?php error_reporting(0); //禁止显示PHP警告提示 $var; var_dump($var); $var1 = null; var_dump($var1); $var2 = NULL; var_dump( $var2); $var3 = "节日快乐!"; unset($var3); var_dump($var3);?>
2 什么是常量
什么是常量?常量可以理解为值不变的量(如圆周率);或者是常量值被定义后,在脚本的其他任何地方都不可以被改变。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。
<?phpdefine("PI", 3.14);echo PI;echo "<br />";$p = "PII";define($p, 3.1415);echo PII;?>
<?phpdefine("PI", 3.14);$r=3;echo "面积为:".(PI*$r*$r)."<br />";echo "周长为:".(2*PI*$r)."<br />";?>
系统常量是PHP已经定义好的常量,我们可以直接拿来使用,常见的系统常量有:
(1)__FILE__ :php程序文件名。它可以帮助我们获取当前文件在服务器的物理位置。
(2)__LINE__ :PHP程序文件行数。它可以告诉我们,当前代码在第几行。
(3)PHP_VERSION:当前解析器的版本号。它可以告诉我们当前PHP解析器的版本号,我们可以提前知道我们的PHP代码是否可被该PHP解析器解析。
(4)PHP_OS:执行当前PHP版本的操作系统名称。它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码。
<?phpecho __FILE__;echo "<br />";echo __LINE__;echo "<br />";echo PHP_VERSION;echo "<br />";echo PHP_OS;echo "<br />";?>
定义了常量,那么就要使用常量,那么如何获取常量值呢?
获取常量值的有两种方法取值:
第一种是使用常量名直接获取值。
第二种是使用constant()函数。它和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上要灵活、方便,其语法格式如下:
mixed constant(string constant_name)
第一个参数constant_name为要获取常量的名称,也可为存储常量名的变量。如果成功则返回常量的值,失败则提示错误信息常量没有被定义。(注:mixed表示函数返回值类型为多种不同的类型,string表示参数类型为字符串类型)
<?php $p="";//定义圆周率的两种取值define("PI1",3.14);define("PI2",3.142);//定义值的精度$height = "中";//根据精度返回常量名,将常量变成了一个可变的常量if($height == "中"){ $p = "PI1";}else if($height == "低"){$p = "PI2";}$r=1;$area = constant($p) * $r * $r;echo $area;// 3.14?>
如果常量被重复定义以后,PHP解析器会发出“Constant XXX already defined”的警告,提醒我们该常量已经被定义过。那么,在团队开发,或代码量很大的情况下,我们如何去判定一个常量是否被定义呢?
defined()函数可以帮助我们判断一个常量是否已经定义,其语法格式为:
bool defined(string constants_name)
它只有参数constant_name,指的是要获取常量的名称,若存在则返回布尔类型true,否则返回布尔类型false; (注:bool表示函数返回值类型为布尔类型)
<?php define("PI1",3.14);$p = "PI1";$is1 = defined($p);$is2 = defined("PI2");var_dump($is1);// bool(true)var_dump($is2);// bool(false)?>
- PHP in action (基础篇)
- [PHP] Hush-Framework in Action
- [PHP] Hush-Framework in Action
- PHP in Action: Objects, Design, Agility
- SSH-基础篇-Action
- In Action
- In Action
- 【Spring in action】SpringMVC的准备工作:Servlet基础
- 《C++ Concurrency in Action》笔记21 内存模型基础
- Lucene in action 笔记 index篇
- Lucene in action 笔记 search篇
- Lucene in action 笔记 analysis篇
- Spring in Action 之WEB篇
- Spring in Action之WEB篇
- Webwork in Action (In Action) [ILLUSTRATED]
- Hibernate in Action
- Eclipse in Action 翻译
- JUnit In Action 笔记
- 搜索引擎使用技巧
- java基础——面向对象(二)
- VS2010 编译boost1_56
- [译]【Storm入门指南】第八章 事务 Topologies
- 多线程的一些理解
- PHP in action (基础篇)
- ThreadLocal
- 输入一个三位数,其各位数字的立方和等于该数本身
- 171.Excel Sheet Column Number
- HDU 2037 今年暑假不AC
- SGU - 519 - 3D City Model (模拟)
- ubuntu 下源码编译安装go
- linux知识点
- 异步任务(AsyncTask)