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)?>





0 0
原创粉丝点击