PHP中使用八进制 可以在前面加,PHP 学习笔记

前言

虽说已经工作,并且也做了两个项目,但总觉得自己的基础知识不牢固,所以从头开始学起。学习过程中的一些代码已上传到 Github 和 码云

基础知识

认识 PHP

略。。。

安装与配置

略。。。

语言基础

标记风格

XML 风格

echo "这是 XML 风格";

?>

脚本风格

echo "这是脚本风格";

简短风格

echo "这是简短风格"; ?>

ASP 风格

echo "这是 ASP 风格";

%>

如果使用简短风格和 ASP 风格,需要在 php.ini 中进行设置,将 short_open_tag 和 asp_tags 设置为 ON,重启 Apache 服务器

推荐使用 XML 风格

注释

单行注释

C++ 风格(//)

// 单行注释

?>

Shell 风格(#)

# Shell 风格的单行注释

?>

多行注释

/*

多行注释

多行注释

多行注释

*/

?>

单行注释中不允许出现 ?> PHP 结束标签

多行注释中不允许出现 */ 多行注释结束标签

数据类型

PHP 中数据类型可以分为三类:标量类型、复合类型、特殊类型

标量类型

布尔类型

布尔类型只有两个值:真(true),假(false),通常使用在条件控制或循环控制语句的条件表达式中

PHP 中可以自动转换为假(false)的值:0, 0.0, “0”, “”, []

字符串类型

字符串就是连续出现的字符序列。PHP 支持四种定义字符串的方式:单引号(‘),双引号(“),heredoc 语法结构,nowdoc 语法结构

单引号

echo '字符串';

?>

双引号

echo "字符串";

?>

如果字符串包含在双引号(“)中,可以对变量和一些特殊字符进行解析

#

含义

n

换行(new line)

r

回车

t

水平制表符

v

垂直制表符

e

Escape

f

换页

\

反斜线

$

美元符号

单引号

双引号

r 和 n 在 windows 中的对比效果不明显,在 Linux 中,n 表示换到下一行,但不会回到行首;而 r 表示光标回到行首,但仍在本行

heredoc 语法结构

<<

这是 heredoc 语法结构

EOD

?>

nowdoc 语法结构

<<

这是 nowdoc 语法结构

EOD

?>

heredoc 和 nowdoc 语法结构和双引号与单引号的关系类似,heredoc 可以解析上面列出的特殊字符,nowdoc 不可以。heredoc 语法结构和 nowdoc 语法结构的结束标识符必须在行首。

整型

在 32 位操作系统中,有效的数值范围的 -2147483648~2147483647(书上这么写的),在 PHP7 (不要问我为什么是 PHP7,因为我用 PHP7 测试的)中可以使用 PHP_INT_MAX 和 PHP_INT_MIN 来获取范围的最大最小值。整型可以使用十进制、二进制、八进制、十六进制来表示,使用八进制,需要在数字前面加上0,使用十六进制需要在数字前面加上0x。

十进制

echo 123;// 正数

echo -123;// 负数

?>

二进制

echo 0b10011;

?>

八进制

echo 0123;

?>

在八进制中,如果出现非法数字 8,9这些,程序会报错(PHP7 中是这样)

十六进制

echo 0x123;

?>

整数溢出

如果给定一个数超出了 integer 的范围,会被解释为 float。

不要将未知分数强制转换为 integer

echo (int)( (0.1 + 0.7) * 10 );// 结果是 7

?>

浮点类型

浮点类型默认有两种格式,标准格式的科学记数法格式

$float = 3.1415;

$float2 = -23.3;

$float3 = 2.34E2;

echo pi();// 圆周率

?>

浮点型数值只是一个近似值,要尽量避免浮点数比较大小

复合数据类型

数组 array

数组的定义:

$arr = array(

$key => $val,

...

);

// 或

$arr = [

$key => $val,

...

];

?>

数组的取值:

echo $arr[$key];

?>

数组 key 的强制转换

包含合法的十进制整数值的字符串会被转换成整数值,例如 “3” 会转换成 3,而 “03” 则不会转换成 3

浮点数也会强制转换为整型,方式为向下取整,例如 2.3 会转换成 2

布尔值中 true 会转换为 1,false 转换为 0

Null 会转换为空字符串””

如果在数组中定义了相同的键名,只使用最后一个

对象 object

类的实例,使用 new 关键字创建。

class Foo

{

protected $name = 'class';

public function show()

{

echo $this->name;

}

}

$obj = new Foo();// 这是的 obj 就是一个对象,是从 Foo 这个类实例化来的

?>

特殊数据类型

资源类型 resource

手册上解释的是:它是保存了外部资源的一个引用。

NULL

表示一个变量没有值,以下情况会被认为是 NULL

被赋值为 NULL

变量未赋值

被 unset()

数据类型转换

转换操作符

转换类型

(boolean)

布尔类型

(string)

字符串类型

(integer)/(int)

整型

(float)

浮点型

(array)

数组

(object)

对象

(unset)

NULL(PHP5)

还可以使用 settype(mixd var, string type) : boolean 函数对类型进行转换,第一个参数是要转换的变量,第二个参数是要转换的类型,支持:boolean, float, integer, array, null, object, string。转换成功返回 true,失败返回 false。

检测数据类型

PHP 中内置了检测数据类型的系列函数,判断一个变量是否属于某个类型,是的话返回 true,不是返回 false。

函数

检测类型

is_bool(mixed var) : boolean

布尔

is_string(mixed var) : boolean

字符串

is_float(mixed var) : boolean/is_double(mixed var) : boolean

浮点型

is_integer(mixed var) : boolean/is_int(mixed var) : boolean

整型

is_null(mixed var) : boolean

NULL

is_array(mixed var) : boolean

数组

is_object(mixed var) : boolean

对象

is_numeric(mixed var) : boolean

数字或由数字组成的字符串

PHP 常量

常量是一个简单的标识符,在脚本运行期间不允许改变。

常量的定义

使用 define() 函数,语法格式:

define(string constant_name, mixed value, boolean case_sensitive = false);

define() 函数说明:

参数

说明

constant_name

必须,常量名

value

必须,常量值

case_sensitive

可选,指定是否大小写敏感,默认为 false,表示敏感

常量的取值

一是直接使用常量名取值,另一种是使用 constant() 函数取值。

判断一个常量是否已经定义

使用 defined() 函数判断一个常量是否已经定义,如果定义了则返回 true,否则返回 false。

PHP 中常用的预定义常量

常量名

功能

__FILE__

PHP 程序文件名

__LINE__

当前所在行

PHP_VERSION

PHP 版本

PHP_OS

执行 PHP 解析器的操作系统 eg. WINNT

E_xxx

PHP 的错误调试部分,参考 error_reporting() 函数

PHP 变量

变量是在程序执行过程中可以变化的量,用一个美元符号后面跟上变量名表示,区分大小写。

变量声名

变量名必须以字母或下划线开头,后面跟上数字、字母、下划线,不能包含特殊符号,也不能以数字或其它特殊符号开头。变量可以是中文,但不建议使用。

$this 是一个特殊的变量,不能被赋值

// 变量的声明

$foo = 'variable';

$foo1 = 'var';

// $1_a = '1a'; // 变量名不合法

// $@abc = 'abc'; // 变量名不合法

$var = $foo; // 使用 $foo 给变量 $var 赋初值

$var2 = &$foo; // 引用赋值

$var2 = 'var2'; // 改变 $var2 的值

var_dump($foo); // $foo 的值也会改变

var_dump($var); // $var 的值还是 variable

?>

变量作用域

变量必须在有效的范围内使用,超出变个范围,变量就失去的意义。

全局变量不能被函数直接使用,如果要使用,必须在函数中声明为 global

// 变量作用域

$a = 1;

function test()

{

echo $a; // 这里不会有任何输出,调用的局部的变量 $a

var_dump($a); // 打印结果显示 NULL

}

test();

// 全局变量在函数内部使用的时候,必须使用 global

$b = 2;

function test2()

{

global $b; // 声明为 global

echo $b; // 结果为 2

}

test2();

// 使用 $GLOBALS 代替 global

$c = 3;

function test3()

{

$GLOBALS['c'] = 5; // 使用 $GLOBALS 代替 global

}

test3();

echo $c; // 显示结果为 5

一般来说,在函数中声明的变量,在函数运行结束时,就会自动被清除掉,使用静态变量则会被保留。

// 静态变量

function static_var()

{

static $d = 1;

echo $d++;

}

static_var(); // 显示 1

static_var(); // 显示 2

可变变量

用一个变量的值,作为另一个变量的变量名。

// 可变变量

$e = 'f'; // 变量值为 f

$$e = 'I am f'; // 相当于 $f = 'I am f';

echo $f;

预定义变量

// 预定义变量

dump($GLOBALS); // 全局作用域中全部变量

dump($_SERVER); // 服务器和执行环境信息

dump($_GET); // HTTP GET 变量

dump($_POST); // HTTP POST 变量

dump($_FILES); // HTTP 文件上传变量

dump($_REQUEST); // HTTP REQUEST 变量

dump($_SESSION); // session 变量

dump($_COOKIE); // cookies

dump($_ENV); // 环境变量

dump($php_errormsg); // 前一个错误信息

dump($HTTP_RAW_POST_DATA); // 原生 POST 数据

dump($http_response_header);// http 响应头

function dump($var)

{

echo '

';

print_r($var);

echo '';

}

运算符

运算符是可以通过给出的一个或多个值,得出另一个值的东西。

运算符优先级

从上到下,优先级降低。

运算符

结合方向

clone, new

**[乘方运算符]

++, –, ~[取反减1], (int), (float), …, @

instanceof

!

*, /, %

+, -, .

<>

, >=

==, !=, ===, !==, <>[相当于是 !=], <=>[a <=> b,如果a > b,返回1,相等返回0,否则返回-1]

&[按位与]

|

&&

//

??

按位异或 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值