php笔记(1)

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。
PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。
PHP 脚本以 <?php 开始,以 ?> 结束
PHP中可以包含html
PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print
php中的注释:
// 这是 PHP 单行注释

/*
这是
PHP 多行
注释
*/。

PHP 变量规则:
变量以 符号开始,后面跟着变量的名称 变量名必须以字母或者下划线字符开始 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ ) 变量名不能包含空格 变量名是区分大小写的(y 和 $Y 是两个不同的变量

PHP echo 和 print 语句
echo 和 print 区别:
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
echo - 可以输出一个或多个字符串
print - 只允许输出一个字符串,返回值总为 1
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。

PHP 数据类型 :
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
[var_dump()] 方法,判断一个变量的类型与长度,并输出变量的数值,如果变量有值,则输出是变量的值,并返回数据类型。显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

echo,print,print_r,var_dump 的区别
1.echo
输出一个或者多个字符串。
2.print
和 echo 一样,速度 比 echo 慢。
3.print_r
打印关于变量的易于理解的信息,如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。 记住,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。
4.var_dump
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
5.var_dump 和 print_r 的区别
var_dump 返回表达式的类型与值而 print_r 仅返回结果,相比调试代码使用 var_dump 更便于阅读。

常量值被定义后,在脚本的其他任何地方都不能被改变。
php中设置常量,使用 define() 函数,函数语法如下:
bool define ( string name , mixedvalue [, bool $case_insensitive = false ] )
该函数有三个参数:
name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。

静态变量 static
被static修饰的变量叫静态变量,静态变量只会被初始化一次

php中false不打印,true转化为1,大小写都可以1
gettype()用来检测数据类型

魔术常量:
FUNCTION//返回函数的函数名
LINE;//返回当前代码所在的行数
FILE文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名
DIR文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
CLASS类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。
TRAIT
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。
Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。
METHOD类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
NAMESPACE
当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。

a=1; function fn(){ globala;//函数中引用全局变量要用global
echo $a;
}
fn()

//php引入
include与require的区别:

  • include遇到错误只会报错
  • require遇到错误则会中断执行代码
    include_once();//只引入一遍

PHP 并置运算符
在 PHP 中,只有一个字符串运算符。
并置运算符 (.) 用于把两个字符串值连接起来
例:txt1="Hello world!";txt2="What a nice day!";
echo txt1 .txt2;

PHP strlen() 函数
strlen() 函数返回字符串的长度(字符数)。

PHP strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。

//替换字符串
str_replace("stay","abc",str); str_ireplace("stay","abc",str);//不区分大小写
//截取字符串
substr(str,3); //查找字符串,连同后面的所有字符串一起返回 echo strstr(str,"stay");
echo stristr(str,"stay");//不区分大小写 //字符串的长度 echo strlen(str);
//大小写转换
echo strtoupper(str); echo strtolower(str);
//空格转换成换行
str1="stay foolish"; echo nl2br(str1);
//去除首尾空格
echo "str".trim(str2); echo "str".ltrim(str2);//去除左空格
echo "str".rtrim($str2);//去除右空格

//不解析标签
echo htmlspecialchars("<h1>标题</h1>");
//忽略标签
echo strip_tags("<h1>标题</h1>");

创建指定范围的数组
// $arr3=range("a","z");

PHP 条件语句
当您编写代码时,您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。
在 PHP 中,提供了下列条件语句:
if 语句 - 在条件成立时执行代码
if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块
switch 语句 - 在若干条件之一成立时执行一个代码块

在 PHP 中,array() 函数用于创建数组:
array();
在 PHP 中,有三种类型的数组:
数值数组 - 带有数字 ID 键的数组
关联数组 - 带有指定的键的数组,每个键关联一个值
多维数组 - 包含一个或多个数组的数组

unset()删除数组中的元素。连同下标一起删除

PHP 数值数组
这里有两种创建数值数组的方法:
自动分配 ID 键(ID 键总是从 0 开始):
cars=array("Volvo","BMW","Toyota"); 人工分配 ID 键:cars[0]="Volvo";
cars[1]="BMW";cars[2]="Toyota";

获取数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素的数量

PHP 关联数组
关联数组是使用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:
age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); or:age['Peter']="35";
age['Ben']="37";age['Joe']="43"; )

遍历并打印关联数组中的所有值,您可以使用 foreach 循环,如下所示:

age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); foreach(age as x=>x_value)
{
echo "Key=" . x . ", Value=" .x_value;
echo "
";
}

PHP - 数组排序函数
在本章中,我们将一一介绍下列 PHP 数组排序函数:
sort() - 对数组进行升序排列
rsort() - 对数组进行降序排列
asort() - 根据关联数组的值,对数组进行升序排列
ksort() - 根据关联数组的键,对数组进行升序排列
arsort() - 根据关联数组的值,对数组进行降序排列
krsort() - 根据关联数组的键,对数组进行降序排列

PHP 超级全局变量列表:

GLOBALSGLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。
$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

_SERVER_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

_SERVER['PHP_SELF'] 当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用_SERVER['PHP_SELF'] 将得到 /test.php/foo.bar。FILE 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。

$_SERVER['GATEWAY_INTERFACE']
服务器使用的 CGI 规范的版本;例如,"CGI/1.1"。

$_SERVER['SERVER_ADDR']
当前运行脚本所在的服务器的 IP 地址。

$_SERVER['SERVER_NAME']
当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com)

$_SERVER['SERVER_SOFTWARE']
服务器标识字符串,在响应请求时的头信息中给出。 (如:Apache/2.2.24)

$_SERVER['SERVER_PROTOCOL']
请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。

$_SERVER['REQUEST_METHOD']
访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。

$_SERVER['REQUEST_TIME']
请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)

$_SERVER['QUERY_STRING']
query string(查询字符串),如果有的话,通过它进行页面访问。

$_SERVER['HTTP_ACCEPT']
当前请求头中 Accept: 项的内容,如果存在的话。

_SERVER['HTTP_ACCEPT_CHARSET'] 当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:"iso-8859-1,*,utf-8" 。_SERVER['HTTP_HOST']
当前请求头中 Host: 项的内容,如果存在的话。

$_SERVER['HTTP_REFERER']
引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。)

$_SERVER['HTTPS']
如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。

$_SERVER['REMOTE_ADDR']
浏览当前页面的用户的 IP 地址。

$_SERVER['REMOTE_HOST']
浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。

$_SERVER['REMOTE_PORT']
用户机器上连接到 Web 服务器所使用的端口号。

$_SERVER['SCRIPT_FILENAME']
当前执行脚本的绝对路径。

$_SERVER['SERVER_ADMIN']
该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。(如:someone@runoob.com)

$_SERVER['SERVER_PORT']
Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。

$_SERVER['SERVER_SIGNATURE']
包含了服务器版本和虚拟主机名的字符串。

$_SERVER['PATH_TRANSLATED']
当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。

$_SERVER['SCRIPT_NAME']
包含当前脚本的路径。这在页面需要指向自己时非常有用。FILE 常量包含当前脚本(例如包含文件)的完整路径和文件名。

$_SERVER['SCRIPT_URI']
URI 用来指定要访问的页面。例如 "/index.html"。

_REQUEST PHP_REQUEST 用于收集HTML表单提交的数据。
以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 _REQUEST 来收集表单中的 input 字段数据_REQUEST可以获取get或者post传入的数据,,不推荐使用,传值速度慢

_POST PHP_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。
以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据

_GET PHP_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。

get和post的区别

  • 1.get方式传值的大小最多2M,post无限制
  • 2.get读取数据,post可以写入数据
  • 3.get传入的数据会拼接在地址栏上,所以安全性不高,post更安全

_FILES_FILES -- $HTTP_POST_FILES [已弃用] — HTTP 文件上传变量

说明

引入 _FILES,弃用HTTP_POST_FILES。
通过 HTTP POST 方式上传到当前脚本的项目的数组。 此数组的概况在 POST 方法上传 章节中有描述。
(注意 HTTP_POST_FILES 和_FILES 是不同的变量,PHP 处理它们的方式不同)

_ENV_ENV -- $HTTP_ENV_VARS [已弃用] — 环境变量

说明

通过环境方式传递给当前脚本的变量的数组。

这些变量被从 PHP 解析器的运行环境导入到 PHP 的全局命名空间。很多是由支持 PHP 运行的 Shell 提供的,并且不同的系统很可能运行着不同种类的 Shell,所以不可能有一份确定的列表。请查看你的 Shell 文档来获取定义的环境变量列表。

其他环境变量包含了 CGI 变量,而不管 PHP 是以服务器模块还是 CGI 处理器的方式运行。
HTTP_ENV_VARS 和_ENV 是不同的变量,PHP 处理它们的方式不同

$_COOKIE

_COOKIE --HTTP_COOKIE_VARS [已弃用] — HTTP Cookies
通过 HTTP Cookies 方式传递给当前脚本的变量的数组。
HTTP_COOKIE_VARS 和_COOKIE 是不同的变量,PHP 处理它们的方式不同

_SESSION_SESSION -- $HTTP_SESSION_VARS [已弃用] — Session 变量当前脚本可用 SESSION 变量的数组。更多关于如何使用的信息,参见 Session 函数 文档。
PHP 循环
在您编写代码时,您经常需要让相同的代码块一次又一次地重复运行。我们可以在代码中使用循环语句来完成这个任务。

在 PHP 中,提供了下列循环语句:
while - 只要指定的条件成立,则循环执行代码块
do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
for - 循环执行代码块指定的次数
foreach - 根据数组中每个元素来循环代码块

while (条件)
{
要执行的代码;
}

do
{
要执行的代码;
}
while (条件);

for (初始值; 条件; 增量)
{
要执行的代码;
}

foreach (array asvalue)
{
要执行代码;
}每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。

PHP - 多维数组
多维数组是包含一个或多个数组的数组。
在多维数组中,主数组中的每一个元素也可以是一个数组,子数组中的每一个元素也可以是一个数组。
例:<?php
sites = array ( "runoob"=>array ( "菜鸟教程", "http://www.runoob.com" ), "google"=>array ( "Google 搜索", "http://www.google.com" ), "taobao"=>array ( "淘宝", "http://www.taobao.com" ) ); print("<pre>"); // 格式化输出数组 print_r(sites);
print("</pre>");
?>

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

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,618评论 0 10
  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,016评论 4 97
  • php面试题及答案(转载)收藏 基础题: 1.表单中 get与post提交方法的区别? 答:get是发送请求HTT...
    积_渐阅读 1,573评论 0 37
  • 那双手指尖勾着红绳,绕过腰间的玉带扣眼,系的那么认真,像是在为他挂上什么珍视万分的宝物。 安岩低着头,在神荼的眼里...
    多多四夕阁阅读 407评论 0 0
  • 如果只剩下一朵花,我会把它放在那个在B612星球一天看44次日落的小王子身边,当他默默望着他的那朵作死的玫瑰花...
    梅瑞娟阅读 344评论 8 2