php基础

简介

PHP,Hypertext Preprocessor,又称为超文本预处理器,开发PHP会需要一定的开发环境,我们现在经常用的是wamp(Windows + Apache + MySql + PHP),其他诸如Lamp(Linux + Apache + MySql + PHP)、PHPStudy、APPServer等,也是经常用的。
PHP 文件的默认文件扩展名是 ".php"。

语法

<?php这个是php文件或段落开始的标志,象征着一个php脚本从这里开始;
?>这个是php脚本的结束,在某些情况下是可以省略掉的。
PHP 语句以分号结尾(;)。PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)。

php中的变量

  • 变量的命名:只能由字母数字下划线组成,开头不能为数字。
  • PHP中变量区分大小写!
  • PHP内置函数或者类名不区分大小写!
  • php中的变量声明与使用,必须以$开头
  • PHP是一种弱类型预言,变量其实并不需要声明,可以直接给变量赋任何类型的值。
  • PHP中可以使用连等同时声明多个变量。而不能使用,分隔,例如:$num1=$num2=$num3=$num4=5;

php中的常量

  • 定义常量
    bool define(String 常量名,mixed 常量值[,bool 是否区分大小写]);
  • 常量的注意事项
    • 常量定义只能使用define函数
    • 常量名原则上要求必须使用大写声明。而且必须不能带$符号
    • 常量声明以后,默认全局范围有效,没有作用域之说
    • 常量不但不能改,而且不能删,unset()、setType()等函数均无效
    • 常量默认区分大小写,但是可以在声明常量时,将define第三个参数设为true即可改为不区分大小写,但是原则上不改
    • 常量必须使用define()定义后才能使用,如果使用未声明的常量,则会将常量名转为常量字符串,但是会报警告
    • 常量的值只能是标量
  • 可以使用constant读取常量的值,注意用""包裹常量名
    可以使用get_defined_constants();获取所有已定义常量,包括系统自定义的n多个常量

php的内置函数

  • unset() 删除并释放变量;
  • isset()检测变量是否设置;
  • empty() 检测变量是否为空(未设置或值为null都为空);
    PHP中的判断变量类型的测试函数
  • is_bool():判断是否是布尔型
  • is_int()is_integer()is_long():判断是否为整型。
  • is_float()is_double()is_real():判断是否为浮点型
  • is_string():判断是否为字符串
  • is_array():判断是否为数组
  • is_object():判断是否为对象
  • is_resource():判断是否为资源类型
  • is_null():判断是否为null
  • is_scalar():判断是否为标量
  • is_numeric():判断是否是任何类型的数字和数字字符串
  • is_callable():判断是否是有效的函数名

php脚本中的注释

//单行注释
#脚本中的注释

/*
*多行注释
*/

php中的数据类型

php中一共有8种数据类型,共分为3类

  • 标量类型: 布尔型Boolean整形Integer浮点型Float/Double字符串String
  • 复合类型: 数组Array对象Object
  • 特殊类型: 资源Resource空null
    php还有一种伪类型,伪类型并不是一种真实存在的数据类型。为了确保代码的易读性,常用于撰写帮助文档时使用。
  • mixed:代表参数可以是多种不同数据类型;
  • number:代表参数可以使Integer或者Float;
  • callback:代表参数可以是一个回调函数。

php中的字符串

php中声明字符串有3种方式

  • ''单引号
  • ""双引号
  • 定界符
<<<s//定界符声明字符串,通过<<<(定界标识符)开始
//定界标识符可以是任意字母,只需要保证开始和结束一致即可
这里是定界符定义的字符串的内容
s; //注意末尾的结束符必须靠边,其前面不能有空格

三种声明字符串方式的区别

  • 定界符功能默认与双引号相同。
  • 单引号中不能解析变量;双引号可以解析变量!!双引号解析变量时,需注意变量名后需用空格与其他字符分隔,或者用{}包裹起来 ,例如:"字符串${num}字符串" "字符串{$num}字符串"均可。
  • 单引号可以包裹双引号,双引号可以包裹单引号,不能包裹相同类型的引号,这点与js相同
  • 单引号中不能使用转义字符(除了单引号''本身,转义符\本身);双引号中可以使用转义字符。

php中的数据类型转换

  • 数据类型自动转换:在运算的时候,Boolean、null、String等类型,会先自动转为int和Float类型,其中null --> 0、true --> 1 、false --> 0、string --> 第一个非数值字符前的数字, "123a" --> 123,没有则转为0
  • 数据类型强制转换,根据自己的需求,强制将变量转为其他类型的变量,例如:$新变量 = (新类型)$原变量 >>> $str = (String)1;
      新类型可以使用全拼,也可以使用缩写
      可以强制转换的类型如下:
      (int),(integer) - 转换成整型
      (bool),(boolean) - 转换成布尔型
      (float),(double),(real) - 转换成浮点型
      (string) - 转换成字符串
      (array) - 转换成数组
      (object) - 转换成对象
  • 使用setType()函数强转
    bool setType(mixed var,String type);第一个参数表示任何类型的变量,另一个参数表示字符串类型的数据类型

上面两种强制数据类型转换的区别:第一种是将转换之后的结果赋给新变量;第二种直接修改了原变量的数据类型。
php中数据类型转换成布尔值后是false的情况

  • Boolean:false
  • Integer:0
  • Float:0.0
  • String: "" "0" ("0.0" "000" 都是true!只有一个0是false!)
  • 空数组
  • 空Object仅在PHP4是false,其他版本对象都是true
  • null和尚未定义的变量都是false
  • 所有资源都是true!(除PHP4,所有对象也是true )

php中的两种输出方法

  • echo 能够输出一个以上的字符串,echo 是一个语言结构,有无括号均可使用:echo 或 echo()。
  • print 只能输出一个字符串,并始终返回 1,print 是一个语言结构,有无括号均可使用:print 或 print()。
    echo 比 print 稍快,因为它不返回任何值。

php中的作用域

php中作用域分为3种globallocalstatic

  • global 是全局作用域,函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问(跟js不同)。
  • local 函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。所以我们可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。

global关键词

global 关键词用于在函数内补使用全局变量。在要使用的global变量前面使用 global 关键词。

<?php
$x=5;
$y=10;
function myTest() {
  global $x,$y;
  $y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>

static关键词

通常,当函数完成/执行后,会删除所有变量。如果我们不想删除某个变量,在首次声明变量时使用 static 关键词;

<?php
function myTest() {
  static $x=0;
  echo $x;
  $x++;
}
myTest();
myTest();
myTest();
?>

参考文章:https://www.cnblogs.com/wk1102/p/6886041.html

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

推荐阅读更多精彩内容

  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,086评论 4 97
  • 软件体系结构 1.单主机结构 界面显示、业务逻辑和数据存取功能都是在用户主机上实现,需要下载软件并安装,易盗版 2...
    sidney_c阅读 757评论 2 3
  • 一、PHP标记 <?php echo "hello php"; ?> <? echo "hello php"; ?...
    XZ阳光小熊阅读 1,068评论 0 4
  • 前言: PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。 PHP 脚本以 <?php开头 //这里...
    LBQ_DS阅读 810评论 2 1
  • 1.变量 变量名的命名规范需要“$”进行标识变量名必须以字母或下划线 “_”开头变量名只能由字母、数字、以及“_”...
    苏宇lovecc阅读 1,276评论 1 8