PHP in action (基础篇)

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,imooc
echo "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 ;// 1
	echo "<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;// 科学计数法,小写e
echo $num_float2;
echo "<br />";
$num_float3 = 7.0E-2;// 科学计数法,大写E
echo $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 $love
echo $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。

<?php
define("PI", 3.14);
echo PI;
echo "<br />";
$p = "PII";
define($p, 3.1415);
echo PII;
?>

<?php
define("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版本的操作系统名称。它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码。

<?php
echo __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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值