1-1、PHP可以做什么?
PHP,即“PHP: Hypertext Preprocessor”,
是一种被广泛应用的开源通用脚本语言,
尤其适用于 Web 开发并可嵌入 HTML 中去。
它的语法利用了 C、Java 和 Perl,易于学习。
该语言的主要目标是允许 web 开发人员快速编写动态生成的 web 页面,
但 PHP 的用途远不只于此,它的特点及功能是:
1、运行在服务器端:
学会了PHP,就可以指挥服务器给你干活,甚至是搞破坏^_^(千万不能真这么做咯),WEB网站的大部分数据都是存储在服务器端的,PHP就是用来处理这些存储在服务器的数据的(功能强大吧)。
2、跨平台:
服务器可以是多种平台的服务器,比如Linux、Windows、Unix,你都可以指挥(不用怕只能指挥一种服务器啦吧)。
3、脚本语言:
它是通过编写脚本,也就是一行行的计算机指令(也可以理解为特定的英文单词),来指挥服务器来工作的,因此,在编写PHP的过程其实就是与老外(服务器成老外啦)交流的过程,交流的语言就是PHP。
4、免费:
免费使用(天下还真有免费的午餐)。
1-2、认识PHP代码标识
PHP脚本编写完之后,文件名必须是以.php为后缀的文件,比如:helloworld.php文件;
在helloworld.php文件中,你的php代码必须编写在<?php ?>标签之后,如果在helloworld.php只有php代码,那么后面的 ?>是可以省略的。
代码示例
<?php
echo "hello world";
?>
1-3、PHP-Echo语句
echo是PHP中的输出语句,可以把字符串输出(字符串用双引号起来);
注意:echo关键字与字符串之间至少要有一个空格。
代码示例
<?php
echo "Hello world"; // 正确写法
echo"Hello world"; // 错误写法
?>
1-4、PHP-计算表达式
不同于Html和Css,在php中我们可以做计算,比如写 echo 12*10; 计算机会计算出结果为120。
代码示例
<?php
echo 12*10; // 运行结果为120
?>
1-5、PHP-字符串
一个字符串是用双引号括起来的一个词或一个句字,
比如:"Hi,NeoJackson !",你可以用PHP语言像这样输出:
代码示例
<?php
echo "Hi,NeoJackson !";
?>
也可以用单引号括起来,就像下面代码:
代码示例
<?php
echo 'Hi,NeoJackson !';
?>
可以把两个字符用 连接符 连接起来,像这样:
代码示例
<?php
echo 'Hi,'.'NeoJackson !';
?>
注意:连接符可以连接多个字符串,上面的例子就是把一个字符串拆分为二个小字符串,然后用一个连接符连接起来。
在php中字符串 连接符 是用点(.)来表示的,这一点比较特殊,其它语言中是用加号(+)来表示的,比如:JavaScript、Asp、C等。
1-6、PHP语句结束符
在php编程中需要在 每条语句 的末尾加入分号(;),但要注意的是,分号(;)一定要在半角状态下输入哦。
1-7、注释
在php中也有注释语句,用双斜杠(//)来表示单行注释,用(/**/)来表示多行注释,如下面代码:
代码示例
<?php
//echo '这是单行注释';
/*
echo '123';
echo 'abc';
echo '这是多行注释';
*/
?>
注意:适当的加注释语句是程序员必备的良好习惯。
第二章 变量2-1、PHP-什么是变量
变量是用于存储值的,
我们命令服务器去干活的时候,
往往需要产生一些数据,
需要临时性存放起来,方便取用。
我们也可以理解为,
变量就像一个购物袋,
我们可以用来装苹果、榴莲,
需要注意的是,一般情况下一个变量只能装一个值,
除非是复合变量(后面变量类型时会介绍),
当我们放进去一个苹果后,再放进榴莲的时候,
苹果就被替换掉,再放入香蕉,那么榴莲就被替换了。
代码示例
<?php
$var = '放入一个苹果';
echo $var; // 此时结果为:放入一个苹果
echo '<br />';
$var = '此时我放一个榴莲';
echo $var; // 此时结果为:此时我放一个榴莲;
// 当为同一个变量时,后面的值会覆盖掉前面的值。
// 变量就像猴子摘苞谷,只剩最后手上的一个!
?>
2-2、PHP-如何定义变量
定义变量就是向服务器的内存[1]申请空间[2],用来存储数据。
变量名(也就是子仓库的名字),
变量值(就是需要存放的东西,苹果、榴莲、香蕉都可以)
[1](服务器的内存,我们可以当做一个大仓库)
[2](申请空间,我们可以理解为一个子仓库)
代码示例
<?php
$var_name = "苹果"; // var_name 是 变量名, 苹果 是 变量值,它是一个字符串
$n = 10; // n 是 变量名,10 是 变量值,它是一个整型(变量的数据类型的一种,后面部分的小节会介绍)
/*
解释一下,
在 = 左边是 变量名,
在 = 右边是 变量值,
完成定义变量后,需要一个 ; 告诉服务器这行指令已经结束。
其中变量名必须通过 $ 符号标识,
= 可不是我们平常所说的等号哦,
在php中,= 是 赋值运算符(后面部分小节会介绍)。
*/
?>
2-3、PHP-变量名的命名规则
变量名的命名规则主要有三条:
1.变量名必须以 **字母**或**下划线"_"**开头。
如:$name、$_name、$name2等,但是$9name是不对的。
2.变量名只能由字母、数字、以及"_"组成,还能包含汉字。
如:$qq、$qq308、$_qq、$my_apple、$name我是字母汉字,等等,但是$name*是不对的。
3.变量名不允许包含空格,当变量名由多个单词组成,建议使用"_"或者以大写字母开头来命名。
如:$my_apple 俗称下划线法
$myApple 俗称骆驼式命名法(也称驼峰命名法)
特别需要注意的是:在php中变量名是区分大小写的,
如:$my_book 与 $my_Book 代表两个不同的变量。
代码示例
<?php
$my_book = "我的小写的book";
$my_BOOK = "我的大写的BOOK";
$name我的名字 = "NeoJackson";
echo $my_book; // 此结果为:我的小写的book
echo "<br />";
echo $my_BOOK; // 此结果为:我的大写的BOOK
echo "<br />";
echo $my_book; // 此结果为:我的小写的book
echo "<br />";
echo $name我的名字; // 此结果为:NeoJackson
?>
2-4、PHP-什么是变量的数据类型
在变量中,由于变量占用的空间单元不一样(占的地盘大小不一样),
也分成几种数据类型,就像超市商品的包装袋,
有几种不同类型,不同的商品使用不同的包装袋。
我们可以通过使用php系统函数 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的运行方式可能输出结果会不同。
*/
?>
2-5、PHP变量的数据类型
在php中,支持8种原始类型,其中包括
四种标量类型(boolean布尔类型、integer整型、float浮点型、string字符串)、
两种复合类型(array数组、object对象)、
两种特殊类型(resource资源、null空类型)、
php是一门松散类型的语言,不必向php声明变量的数据类型,
php会自动把变量转换为自动的数据类型,一定程度降低了学习php的门槛。如果接触过C语言或者Java语言,就会发现在声明变量的时候需要声明变量的数据类型。
2-6、PHP标量类型—布尔类型
布尔类型(boolean):只有两个值,
一个是TRUE,另一个FALSE,可以理解为是或否。
它不区分大小写,也就是说TRUE和true效果是一样的。
主要用在条件结构(条件结构在后面部分会介绍)中,
例如判断是否满足条件的时候,
是用true表示满足,用false表示不满足。
需要注意的是,当我们用echo指令输出布尔类型时,
如果是true则输出的是1,false则什么也不输出。
我们可以使用var_dump函数,获取它真正的数据类型。
代码示例
<?php
$abc = true;
$def = false;
$man = "男";
$flag = $man == "男";
echo $abc; // 因为是true 所以此结果为:1
echo "<br />";
echo $def; // 因为是false 所以不输出任何东西
echo "<br />";
echo $flag; // 其中使用 == 等于比较运算符,判断变量是否是等于“男”,并将比较的结果赋值给变量$flag,所以此结果为:1
echo "<br />";
var_dump($flag); // 条件成立并返回布尔类型的身份 此结果为:bool(true)
echo $man; // 正常输出变量值 此结果为:男
echo "<br />";
var_dump($man); // 返回当前变量的数据类型 此结果为:string(3) "男"
?>
2-7、PHP标量类型—整型
整型(integer):类似于常见的整数。
它可以用十进制、八进制、十六进制指定。
十进制就是日常使用的数字;
八进制,数字前必须加上 0 (这个0是指阿拉伯数字0)
十六进制,数字前必须加 0x (这个0是指阿拉伯数字0)
代码示例
<?php
$data_int = 1234; // 十进制数
$data_int = -567; // 一个负数
$data_int = 0123; // 八进制数(等于十进制的 83)
$data_int = 0x1a; // 十六进制数(等于十进制的 26)
?>
2-8、PHP标量类型—浮点型
浮点型(float 浮点数、双精度或实数),也就是通常说的小数,
可以用小数点或者科学计数法表示。
科学计数法可以使用小写的e,也可以使用大写的E。
代码示例
<?php
$num_float = 1.234; // 小数点 1.234
$num_float = 1.2e3; // 科学计数法,小写e 1200
$num_float = 7.0E-10; // 科学计数法,大写E 0.007
?>
2-9、PHP标量类型—字符串
字符串(string)是由一系列字符组成,
在php中,字符和字节一样,
也就是说,一共有256种不同字符的可能性
字符串型可以用三种方法定义:单引号形式、双引号形式和Heredoc结构形式。
代码示例
<?php
$str_string1 = '我是字符串';
$str_string2 = "我也是字符串哦";
echo $str_string1;
echo "<br />";
echo $str_string2;
?>
<?php
// 引号互相的嵌入
$str_string1 = '甲问:"你在哪里学的PHP?"'; // 单引号嵌入双引号
$str_string2 = "乙毫不犹豫地回答:'当然是NeoJackson咯!'"; // 双引号中嵌入单引号
$str_string3 = '甲问:\'能告诉我网址吗?\''; // 单引号中嵌入单引号 使用转义符“\”
$str_string4 = "乙答道:\"www.NeoJackson.com\""; // 双引号中嵌入双引号 使用转义符“\”
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 = "NeoJackson,$love"; // 当双引号中包含变量时,变量会与双引号中的内容连接在一起; 此结果为:NeoJackson,I love you!
$string2 = 'NeoJackson,$love'; // 当单引号中包含变量时,变量会被当做字符串输出。 此结果为:NeoJackson,$love
echo $string1;
echo "<br />";
echo $string2;
?>
<?php
// 当我的字符串很长怎么办?
/*
我们可以使用Heredoc结构形式的方法来解决该问题,
首先使用定界符表示字符串(<<<),
接着在“<<<“之后提供一个标识符GOD,(这个标识符是自定义的)
然后是字符串,
最后以提供的这个标识符结束字符串。
注意:结尾处的标识符必须是和前面自定义标识符一样的。
此外,在结尾的一行,一定要另起一行,
并且此行除了自定义标识符和";"号结束之外,
不能有任何其他字符,前后都不能有,包括空格,
否则会出现错误的哦,切记切记!
*/
$string1 = <<<GOD
我有一只小毛驴,我从来也不骑。
有一天我心血来潮,骑着去赶集。
我手里拿着小皮鞭,我心里正得意。
不知怎么哗啦啦啦啦,我摔了一身泥.
GOD;
echo $string1;
?>
2-10、PHP第一种特殊类型—资源
资源(resource):资源是由专门的函数来建立和使用,
例如打开文件、数据连接、图形画布。
我们可以对资源进行操作(创建、使用和释放)。
任何资源,在不需要的时候应该被及时释放。
如果我们忘记了释放资源,
系统自动启用垃圾回收机制,
在页面执行完毕后回收资源,
以避免内存被消耗殆尽。
代码示例
<?php
//首先采用“fopen”函数打开文件,得到返回值的就是资源类型。
$file=fopen("f.txt","r"); //打开文件 注意:f.txt文本文件保存时一定要设置为UTF-8格式,避免出现乱码。
if ($file_handle){
//接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字
while (!feof($file_handle)) { //判断是否到最后一行
$line = fgets($file_handle); //读取一行文本
echo $line; //输出一行文本
echo "<br />"; //换行
}
}
fclose($file_handle);//关闭文件
$con=mysql_connect("localhost","root","root"); //连接数据库
$img=imagecreate(100,100);//图形画布
?>
2-11、PHP第二种特殊类型—空类型
NULL(null):NULL是空类型,对大小写不敏感,
NULL类型只有一个取值,表示一个变量没有值,
当被赋值为NULL,或者尚未被赋值,或者被unset(),
这三种情况下变量被认为 NULL 类型。
代码示例
<?php
error_reporting(0); //禁止显示PHP警告提示
$var;
var_dump($var); // 此结果为:NULL
$var1 = null;
var_dump($var1); // 此结果为:NULL
$var2 = NULL;
var_dump( $var2); // 此结果为:NULL
$var3 = "节日快乐!";
unset($var3); // 释放$var3
var_dump($var3); // 此结果为:NULL
?>