PHP学习笔记之一

标签(空格分隔): PHP


资料来源:慕课网PHP入门篇、PHP学习手册

一、变量

变量定义

$变量名 = 变量值;
$var = "xxx";

变量类型查看

var_dump($变量名)

特点

1.变量区分大小写

2.变量名必须以字母下划线开头,只能由字母数字下划线组成。

3.PHP是一门松散类型的语言,不必向PHP声明变量的数据类型,PHP会自动把变量转换为自动的数据类型。如:

<?php
$var = 10;
var_dump($var);
$var = "hello PHP!";
var_dump($var);
?>

执行结果如下:

int(10)
string(10) "hello PHP!"

变量类型

在PHP中,支持8种原始类型,其中包括四种标量类型、两种复合类型和两种特殊类型。

变量主要可分为:字符串类型,整型,浮点型和数组四个类型。

PHP标量类型

1、布尔类型boolean

简介:

只有两个值,一个是TRUE,另一个FALSE,可以理解为是或否。它不区分大小写。

用途:

主要用在条件结构中,例如判断是否满足条件的时候.

注意

1.用echo输出的时候,输出值为0、1.

2、整型

简介

类似于常见的整数。

分类

(1、十进制:日常的数字,如:32。

(2、八进制:数字前加0,如:032。

(2、十六进制:数字前加0x,如:0x32.

3、浮点型

简介

浮点数、双精度数或实数,也就是通常说的小数。

表示方法

1、小数点,如:1.23。

2、科学计数法,如:1.2e3、1.2E3。

4、字符串

表示

1、单引号

2、双引号

3、Heredoc结构形式(<<<标识符 + 内容 + 标识符)

4、Nowdoc结构形式(<<<'标识符' + 内容 + 标识符)

$string1 = 'hello PHP!';
$string2 = "hello PHP!";
$string3 = <<<Anani_leaf
hello PHP!
Anani_leaf;

注意

1、使用单引号的字符串中本身含有单引号时,需要用''转义,双引号同理。

2、单引号中含有'$'引用的变量时,会把其当作字符串输出;而双引号的字符串,变量会与双引号中的内容连接在一起,简单点说就是双引号会进行变量解析,以及分析一些转义字符,而单引号不会如:

<?php
$love = "I love you!";
$string1="慕课网,$love";
$string2='慕课网,$love';
echo $string1;
echo "<br />";
echo $string2;
?>

输出:

慕课网,I love you!
慕课网,$love

注:

可以用{\(c}进行变量界限的定义,这样子就会把变量识别,{}不会在输出中,用转义'\'对\)使用后,可以输出"{$xxx}";

3、Heredoc类似双引号,newdoc类似单引号。

PHP特殊类型

1、资源

介绍

资源(resource):资源是由专门的函数来建立和使用的,例如打开文件、数据连接、图形画布。我们可以对资源进行操作(创建、使用和释放)。

举例

<?php
$file=fopen("f.txt","r"); //打开文件
$con=mysql_connect("localhost","root","root"); //连接数据库
$img=imagecreate(100,100);//图形画布
?>
<?php
//首先采用“fopen”函数打开文件,得到返回值的就是资源类型。
$file_handle=fopen("/data/webroot/resource/php/a.txt","r");
if ($file_handle){
//接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字
while (!feof($file_handle)) { //判断是否到最后一行
$line = fgets($file_handle); //读取一行文本
echo $line; //输出一行文本
echo "<br />"; //换行
}
}
fclose($file_handle);//关闭文件
?>

2、空类型NULL

介绍

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

二、常量

常量可以理解为值不变的量(如圆周率);或者是常量值被定义后,在脚本的其他任何地方都不可以被改变。

PHP中的常量分为自定义常量系统常量.

1、自定义常量

自定义常量是根据我们开发的需要,而定义的常量,它通过使用PHP中的函数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)

如:

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

输出:

3.14
3.14

注:

defined($string)函数的返回值可以帮助我们分辨当前的常量是不是已经被定义过,如果被定义过,返回true,反之false

2、系统常量

系统常量是PHP已经定义好的常量,我们可以直接拿来使用

常见的系统常量

1、FILE :php程序文件名。获取当前文件在服务器的物理位置。

2、LINE :PHP程序文件行数。它可以告诉我们,当前代码在第几行。

3、PHP_VERSION:当前解析器的版本号。它可以告诉我们当前PHP解析器的版本号,我们可以提前知道我们的PHP代码是否可被该PHP解析器解析。

4、PHP_OS:执行当前PHP版本的操作系统名称。它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码。

常量的获取

1、通过常量名直接获取

如:

    define("PI",3.14);
$r = 3;
echo PI*$r*$r;

2、使用constant()函数获取

有的常量名是变量的值,这个时候就可以用constant()来获取

如:

$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;//不能用 $p*$r*$r;
echo $area;

三、运算符

PHP运算符一般分为算术运算符、赋值运算符、比较运算符、三元运算符、逻辑运算符、字符串连接运算符、错误控制运算符。

1、算术运算符

2、赋值运算符

PHP的赋值运算符有两种,分别是:

(1)“=”:把右边表达式的值赋给左边的运算数。它将右边表达式值复制一份,交给左边的运算数。换而言之,首先给左边的运算数申请了一块内存,然后把复制的值放到这个内存中。

(2)“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。

3、比较运算符

4、三目运算符

(“?:”)三元运算符也是一个比较运算符,对于表达式(expr1)?(expr2):(expr3),如果expr1的值为true,则此表达式的值为expr2,否则为expr3。

5、逻辑运算符

6、连接运算符

(1)连接运算符(“.”):它返回将右参数附加到左参数后面所得的字符串。
(2)连接赋值运算符(“.=”):它将右边参数附加到左边的参数后。

7、错误控制运算符

PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;

四、循环结构

C++的for(;

# PHP学习笔记之一的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

  10. ucos实时操作系统学习笔记——任务间通信(消息)

    ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...

随机推荐

  1. 探讨Java I/O类和接口

    (输出)Output:程序---->数据源(如某个文件) (输入)Input:数据源---->程序 Java.io定义的I/O类如下表所示: BufferedInputStream Buf ...

  2. MAC OSX安装多个版本的JAVA(jdk jre通用)

    MAC自带的jdk1.6是苹果公司自己修改的jdk版本,被广泛应用于各种mac软件,具有不可替代性:同时,java1.7和1.8有时也需要用到.因此,在mac上安装.使用多个版本的java具有重要意义 ...

  3. 区分兼容IE6/IE7/IE8/IE9/FF的CSS HACK写法

    HACK原理:不同浏览器对各中字符的识别不同 在 CSS中常用特殊字符识别表: (1)*:  IE6+IE7都能识别*,而标准浏览器FF+IE8是不能识别*的; (2)!important: 除IE6 ...

  4. org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade 解决方案 (网络转载)

    前提是配置了cascade=all,依然报这种错误,其实出现这个错误的大多数情况根本不是像网上的帖子所说的是什么级联删除的问题,而且hibernate session关于实体生命周期操作的原因,这里明 ...

  5. R语言中基于聚类的离群点挖掘

    思路:首先,通过K-means算法将数据点划分为成若K个簇:然后计算每一个数据对象到最近簇的中心距离,来与离群点设置的阈值进行比较,以此来判别该数据对象是否是离群点. 1.读取数据 data<- ...

  6. ctf百度杯十二月场what_the_fuck(一口盐汽水提供的答案)

    目录 漏洞利用原理 具体利用步骤 漏洞利用原理 read(, &s, 0x20uLL); if ( strstr(&s, "%p") || strstr(& ...

  7. 【c++】【常用函数】

    分割字符串:https://www.cnblogs.com/zealousness/p/9971709.html 字符串比较:https://www.cnblogs.com/zealousness/p ...

  8. ShuffleNet

    ShuffleNet (An Extremely Efficient Convolutional Neural Network for Mobile Devices) —— Face++ shuffl ...

  9. 6.Git代码回滚

    1.代码修改并提交 我们已经成功地添加并提交了一个helloWorld.txt文件,现在,是时候继续工作了. 于是,我们继续修改helloWorld.txt文件,改成如下内容: $ vi helloW ...

  10. selenium 模块

    介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如 ...