PHP最全笔记(一)(值得收藏,不时翻看一下)

PHP笔记来啦~绝对干货!

以下为我以前学PHP时做的笔记,时不时的也会添加一些基础知识点进去,有时还翻出来查查。

//语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出。/* 【命名规则】 */常量名 类常量建议全大写,单词间用下划线分隔    // MIN_WIDTH

变量名建议用下划线方式分隔            // $var_name

函数名建议用驼峰命名法                // varName

定界符建议全大写                 // <<

文件名建议全小写和下划线、数字        // func_name.php

私有属性名、方法名建议加下划线        // private $_name _func

接口名建议加I_                    // interface I_Name/* 语言结构 */array(), echo(), empty(), eval(), exit(), isset(), list(), print(), unset()echo, print 可省略括号。/* 预定义常量 */PATH_SEPARATOR  //路径分隔符(Windows为分号,类Unix为冒号)

DIRECTORY_SEPARATOR //目录分隔符PHP_EOL //当前系统的换行符PHP_VERSION //PHP版本号PHP_OS  //PHP服务操作系统

PHP_SAPI    //用来判断是使用命令行还是浏览器执行的,如果 PHP_SAPI=='cli' 表示是在命令行下执行PHP_INT_MAX                    INT最大值,32位平台时值为2147483647

PHP_INT_SIZE                   INT字长,32位平台时值为4(4字节)

M_PI    //圆周率值

M_E     //自然数

//PHP运行环境检测函数php_sapi_name() //返回一个PHP与WEB服务器接口类型的小写字符串该函数返回值与常量PHP_SAPI一致!

接口类型:SAPI(the Server API, SAPI)

可能值:aolserver、apache、apache2filter、apache2handler、caudium、cgi、cgi-fcgi、cli、 continuity、embed、isapi、litespeed milter、nsapi、phttpd、pi3web、roxen、thttpd、tux、webjames/* 大小写问题 */

- 类名、方法名、属性名、函数名:不区分大小写

- 变量名、常量名、元素下标:区分大小写/* 可变标识符 */可变变量  $i = 3; $k = 'i'; echo $$k; //输出3

可变函数  function func() {echo 'hello!';} $i = 'func'; $i(); //输出hello

可变下标  $i = '1234'; $k = 3; echo $i[$k];   //输出4

可变类名  class CLS{public $k = 'hello';} $i = 'CLS'; $j = new $i; echo $j->k;

可变属性  class CLS{public $k = 'hello';} $i = 'k'; $j = new CLS; echo $j->$i;

可变方法  class CLS{public function k(){echo 'hello';}} $i='k'; $j=new CLS; $j->$i();/* 可变变量 */

* 用于业务逻辑判断得到某些具体信息    $var_name = "class_name";

$$var_name = "PHP0913";        // $class_name = "PHP0913";$class_name已存入内存中    var_dump($class_name);        // var_dump($$var_name);/* 变量函数 */get_defined_vars    //返回由所有已定义变量所组成的数组(包括环境变量、服务器变量和用户定义的变量)/* unset() */

* unset()仅删除当前变量名和引用,其值并未被删除

* 引用传递中,删除一个变量及其引用,其他变量及引用均存在,且值依然存在     echo "";    $v3 = '值';    $v4 = &$v3;    unset($v4);    var_dump($v3, $v4);/* 变量的最长有效期 */

* 当前脚本的执行周期,脚本执行结束,变量即消失/* 预定义变量/超全局变量 */$GLOBALS$_COOKIE$_ENV$_FILES$_GET$_POST$_REQUEST$_SERVER$_SESSION/* 常量定义 */define(常量名, 常量值, [区分大小写参数])        //true表示不区分/false表示区分大小写const 常量名 = 常量值    // 新,建议常量名可以使用特殊字符constant($name)        // 获取常量名

// 例:echo constant('-_-');/* 常量相关函数 */definedget_defined_constants/* 预定义常量 */

__FILE__            所在文件的绝对路径

__LINE__            文件中的当前行号

__DIR__            文件所在目录

__FUNCTION__        函数名称

__CLASS__            类的名称

__METHOD__        类的方法名

__NAMESPACE__        当前命名空间的名称

/* 整型 */

整型占用4字节,共4*8=32位,最大值为2147483647,最小值为-2147483648,最小值的绝对值比最大值的大1

最高为表示正负,1表示负,0表示正

/* 进制转换函数 */

只能十进制与其他进制进行转换,只有六种

转换时,参数应是字符串(即不可含八进制的“0”或十六进制的“0x”)

10     dec

2      bin

8      oct

16     hex

hexdec()    十六进制转十进制        也可写hex2dec()

dechex()    十进制转十六进制        也可写dec2hex()

bindec()    二进制转十进制        也可写bin2dec()

decbin()    十进制转二进制        也可写dex2bin()

octdec()    八进制转十进制        也可写oct2dec()

decoct()    十进制转八进制        也可写dec2oct()

/* 浮点数 */

浮点数不能比较大小 !!!

几乎所有小数,在保存时都是近似值而不是精确值!

最大值:+/- 1.8E308

PHP所能保存的最长小数位:14位

/* 单引号字符串 */

单引号字符串中,只能转义反斜杠和单引号

/* 双引号字符串 */

只解析字符串一次 !!!

eval     把字符串作为PHP代码执行

大括号包裹变量,可确定变量名界限。如:"aaa{$bbb}ccc"

双引号中可以将ASCII码转换为字符

"\x61" -> a    // 字符串中不需0,整型中才是0x前导

"\x49\x54\x43\x41\x53\x54" -> ITCAST

将ASCII转成字符函数chr()

将字符转成ASCII函数ord()

#双引号转义列表

\n 换行

\r 回车

\t 水平制表符

\\ 反斜线

\$ 美元标记

\v 垂直制表符

\e Escape

\f 换页

\" 双引号"

\[0-7]{1,3} 符合该正则表达式序列的是一个以八进制方式来表达的字符

\x[0-9A-Fa-f]{1,2} 符合该正则表达式序列的是一个以十六进制方式来表达的字符

/* 定界符 */

herodoc - 功能同双引号,能解析

$str = <<

字符串内容

AAA;

nowdoc - 功能同单引号,不能解析

只在开始位置有单引号

$str = <<<'AAA'

字符串内容

AAA;

/* 字符串的使用 */

可将字符串当作一个字符的集合来使用,可独立访问每个字符。仅适用于单字节字符(字母、数字、半角标点符号),像中文等不可用

$str = "abcd";

echo $str[3];   // d

echo $str{0};   // a

/* 【类型操作函数】 */

//获取/设置类型

gettype($var) //获取变量的数据类型

settype($var, $type) //设置变量的数据类型

//类型判断

is_int

is_float

is_null

is_string

is_resource

is_array

is_bool

is_object

is_numeric      检测变量是否为数字或数字字符串

//转换成指定的数据类型

boolval

floatval

intval

strval

//强制转换类型

(int)

(float)

(string)

(bool)

(array)

(object)

(unset) //转换为NULL

(binary) 转换和 b前缀转换  //转换成二进制

var_dump        打印变量的相关信息。

显示关于一个或多个表达式的结构信息,包括表达式的类型与值。

数组将递归展开值,通过缩进显示其结构。

var_export($var [,bool $return]) //输出或返回一个变量的字符串表示

$return:为true,则返回变量执行后的结果

print_r         打印关于变量的易于理解的信息

empty           检查一个变量是否为空

isset           检测变量是否存在

/* 【流程控制】 */

//if语句的替代语法

if (条件判断) :

语句块;

elseif (条件判断) :

语句块;

else :

语句块;

endif;

//流程控制的替代语法

在嵌入HTML时常用

将 { 换成 : , 将 } 换成 endif; 等

endif

endwhile

endfor

endforeach

endswitch

/* 【switch】 */

switch (条件) {

case 状态值1:

语句块;

[break;]

case 状态值2:

语句块;

[break;]

case 状态值3:

case 状态值4:

语句块;

[break;]

default:

语句块;

[break;]

}

switch是状态分支,特殊的循环

先计算出状态值,再去与判断数作比较

break退出流程

/* 【for循环】 */

for (条件初始化表达式; 条件判断表达式; 条件变化表达式) {

循环体

}

假设循环体被执行了N次,则

条件初始化表达式被执行1次

条件判断表达式被执行N+1次

条件变化表达式被执行N次

注意:

1. 循环变量在for语句结束后还可以继续使用,值为第一次失败的值

2. 循环变量在for循环体内可以使用

3. 任何条件表达式均可省略,但分号不能省略

a. 条件初始化表达式被省略时,循环变量被赋值为null,在与条件判断时,

进行类型转换后再比较。也可以在for语句外进行初始化。

b. 条件判断表达式被省略时,表示循环为真,进入死循环

c. 条件变化表达式被省略时,可以在循环体内完成

4. 每个表达式均可由多条语句组成,每条语句之间使用逗号分割

如果条件判断表达式由多条语句组成,都会执行,但只有最后一条语句才作为判断条件

5. for只能遍历数值型索引下标数组

数组长度函数:count()

6. 应该将可以初始化的语句均放在条件初始化表达式内,这样可以省去很多执行次数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,091评论 4 97
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,702评论 0 11
  • * 【goto】5.3+ 版本 */ 用来跳转到程序中的某一指定位置 该目标位置可以用目标名称加上冒号来标记。 P...
    Omit03阅读 534评论 0 0
  • 一、变量 1、变量的命名规则 1、变量名必须以字母或下划线 “_”开头,如”$_name”,”$name” ,”$...
    yzw12138阅读 641评论 1 1
  • 年 请愿,怀念 儿时远,旧事恋 再难回现,把酒言欢 离别归家还,今夜欲无眠 闲谈往事如烟,回首已是笑谈 万水千山终...
    达时代阅读 232评论 0 0