php

官方手册:http://php.net/manual/zh/

1、PHP(全称 Hypertext Preprocessor,超文本预处理器的字母缩写)是一种服务器端脚本语言,它可嵌入到 HTML 中,尤其适合 WEB 开发。

2、php能做什么?

  • 服务端脚本。这是 PHP 最传统,也是最主要的目标领域。需要具备以下三点:PHP 解析器(CGI 或者服务器模块),WEB 服务器(如 Nginx,Apache)和浏览器。

  • 命令行脚本。可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它,仅需要 PHP 解析器来执行。

  • 桌面应用程序。桌面应用程序可以通过 PHP 高级特性 PHP-GTK 来编写。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。

echo是PHP中的输出语句,可以把字符串输出(字符串用双引号括起来)。 echo关键字与字符串之间至少要有一个空格

不同于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、Asp、C。

PHP-什么是变量

变量是用于存储值的,我们命令服务器去干活的时候,往往需要产生一些数据,需要临时性存放起来,方便取用。我们也可以理解为,变量就像一个购物袋,我们可以用来装苹果、榴莲(当然也可以用来装玫瑰),需要注意的是,一般情况下一个变量只能装一个(不要太贪心)值,除非是复合变量(后面变量类型时会介绍),当我们放进去一个苹果后,再放进榴莲的时候,苹果就被替换掉,再放入香蕉,那么榴莲就被替换了。

”var_dump”函数可以将我们的变量的数据类型

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

1、变量名必须以字母下划线_”开头,如”​name” ,”等,但是​9name”是不对的。

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

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

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

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标量类型—布尔类型

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

<?php
$flag=TRUE;
?>

PHP标量类型—整型

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

<?php
$data_int = 1234;   // 十进制数
$data_int = -567;   // 一个负数
$data_int = 0123;   // 八进制数(等于十进制的 83)
$data_int = 0x1a;   // 十六进制数(等于十进制的 26)
?>

PHP标量类型—浮点型

浮点型(浮点数、双精度数或实数),也就是通常说的小数,可以用小数点或者科学计数法表示。科学计数法可以使用小写的e,也可以使用大写的E。例如:

<?php
$num_float = 1.234;   //小数点  
$num_float = 1.2e3;   //科学计数法,小写e  
$num_float = 7.0E-10;     //科学计数法,大写E  
?>

当你的字符串中包含引号的时候,我们怎么办?不要慌哈,咱们想想办法。如下图(单击可放大):

第一种方案:在单引号中嵌入双引号,如上图第2行所示;

第二种方案:在双引号中嵌入单引号,如上图第3行所示;

第三种方案:使用转义符“\”(后面部分还有介绍),分别如上图第4行和第5行所示;

当双引号中包含变量时,变量会与双引号中的内容连接在一起;

当单引号中包含变量时,变量会被当做字符串输出。

嘿嘿,咱们来动手看看结果吧:

1、在第3行输入“慕课网love";”;2、在第4行输入“慕课网love';”;

运行结果如下:

当我的字符串很长怎么办?

我们可以使用Heredoc结构形式的方法来解决该问题,首先使用定界符表示字符串(<<<),接着在“<<<“之后提供一个标识符GOD,然后是字符串,最后以提供的这个标识符结束字符串。如图:

在赋值符号后,输入定界符“<<<”,接着是标识符,你可以用你的女神作为标识符“GOD”,如第2行,也可以使用你喜欢的狗狗,“DOG”作为标识符,但是,结尾处的标识符也必须是一样的。此外,在结尾的一行,如第7行,一定要另起一行,并且此行除了“GOD”,并以“;”号结束之外,不能有任何其他字符,前后都不能有,包括空格,否则会出现错误的哦。切记切记哦。

PHP第一种特殊类型—资源

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

举例如下:

<?php
$file=fopen("f.txt","r");   //打开文件
$con=mysql_connect("localhost","root","root"); //连接数据库
$img=imagecreate(100,100);//图形画布
?>

嘘!咱偷窥一个小文件!

假设在服务器上,你发现了一个文件,是不是很好奇,想看看里面写了啥。嘿嘿,PHP可以做到哦(但是千万记住,如果是隐私文件,可不能偷窥哦,就像偷窥陈冠*的照片一样,要坐牢滴!)。假设服务器上有个文件为“f.txt”,这时候,我们就需要用到资源这种特殊的数据类型。

$file_handle = fopen("/data/webroot/resource/php/f.txt","r");

PHP第二种特殊类型—空类型

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

php学习----基本介绍及数据类型的更多相关文章

  1. Typescript 学习笔记二:数据类型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  2. 《SystemVerilog验证-测试平台编写指南》学习 - 第2章 数据类型

    <SystemVerilog验证-测试平台编写指南>学习 - 第2章 数据类型 2.1 内建数据类型 2.2 定宽数组 2.2.1 声明 2.2.2 常量数组 2.2.3 基本的数组操作 ...

  3. C# BackgroundWorker组件学习入门介绍

    C# BackgroundWorker组件学习入门介绍 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能 ...

  4. Android Testing学习01 介绍 测试测什么 测试的类型

    Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...

  5. python学习日记(基础数据类型及其方法01)

    数字 int 主要是用于计算的,常用的方法有一种 #既十进制数值用二进制表示时,最少使用的位数i = 3#3的ASCII为:0000 0011,即两位 s = i.bit_length() print ...

  6. Python学习笔记(2)--基本数据类型

    在介绍基本数据类型之前,先说一个系统方法type():返回对象的数据类型,可以帮助我们查看系统的类型定义 python不同的版本,类型名称稍有不同,这里使用的是3.5.2版本 一.基本数据类型: 1. ...

  7. Redis学习01——介绍与搭建环境

    Redis学习01介绍与搭建环境一简介二yum配置已经配置了的可以跳过三安装gcc四安装redis1 上传Redis到linux中2 解压到usrlocal下3 编译redis4 安装redis5 拷 ...

  8. 深度学习与CV教程(8) | 常见深度学习框架介绍

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...

  9. COM学习(三)——数据类型

    上回书介绍了GUID.CLSID.IID和接口的概念.本回的重点是介绍 COM 中的数据类型.咋还不介绍组件程序的设计步骤呀?咳......别着急,别着急!孔子曰:"饭要一口一口地吃&quo ...

随机推荐

  1. 一张图,让你和面试官聊一个小时的“Java内存模型”

    如果面试官问你:你了解 Java 内存模型吗? 你就可以使用这张图,按照这张图中的顺序和面试官开聊,正常情况下,聊一个小时是差不多的,这个时候,对你的处境是非常有益的,因为面试官的时间不多了.

  2. spark高可用集群搭建及运行测试

    文中的所有操作都是在之前的文章spark集群的搭建基础上建立的,重复操作已经简写: 之前的配置中使用了master01.slave01.slave02.slave03: 本篇文章还要添加master0 ...

  3. npm install -g @angular/cli@latest 失败

    一开始的ERROR信息是 error "@angular/compiler-cli" package was not properly installed 尝试方案二时又出现了以下 ...

  4. [转]GitLab Continuous Integration (GitLab CI/CD)

    本文转自:https://docs.gitlab.com/ee/ci/README.html GitLab Continuous Integration (GitLab CI/CD) The bene ...

  5. 【转载】C#将图片以二进制流的方式存入数据库

    在C#开发应用程序的过程中,图片一般会存放在文件系统中,当然图片也可以二进制的方式存放到数据库中,不过一般不建议存放在数据库中,因为图片占用的空间还是挺大的,特殊情况下可以考虑将图片存在数据.此文将介 ...

  6. C#操作DbCommand类

    一.常用属性 名称 说明 CommandText  获取或设置要对数据源执行的 Transact-SQL 语句.表名或存储过程 CommandTimeout 获取或设置在终止执行命令的尝试并生成错误之 ...

  7. (8)Jquery1.8.3快速入门_可见性选择器

    一.Jquery的可见性选择器: 可见性选择器: 1.:visable 筛选可以见的元素 2. :hidden 筛选不可见的元素 效果: 源码: <!DOCTYPE html> <h ...

  8. MySQL技巧(二)——无限级分类表设计

    无限级分类表的设计(掌握'自身连接') 类似图书这种,会有很多种分类,而且在现实生活中这种分类会无限的往下分,所以不可能每有一个分类就创建一个分类表.应该使用下面这种语句 DROP TABLE IF ...

  9. 二进制安装 kubernetes 1.12(三) - 部署 Master 节点组件

    在Master节点部署组件 在部署Kubernetes之前一定要确保etcd.flannel.docker是正常工作的,否则先解决问题再继续. 创建 CA 证书 mkdir -p /iba/master ...

  10. 一年过去了,25万月薪的AI工程师还存在吗?

    导读:2017 年的时候,AI 前线进行了一场有关人工智能领域薪资差异的专题策划,这篇名为<25 万年薪的你与 25 万月薪的他,猎头来谈你们之间的差别>的文章引起了读者们的热烈讨论.一年 ...