PHP基础(一)
<?php $expression = false; if($expression == true): ?> <p>This will show if the expression is true.</p> <?php else: ?> <p>Otherwise this will show.</p>
数据类型:
boolean true/false 不区分大小写
integer
float
string
array
object
resource
NULL
echo // 打印
var_dump() // 查看某个表达式的值和类型
gettype()
is_string() // bool
is_boolean()
is_int()
is_float()
is_array()
is_object()
is_resource()
settype() // 类型转换
round() // 四舍五入
""双引号会对PHP一些特殊的字符进行解析
string: '', "", Heredoc, Nowdoc
Heredoc
$str = <<<EOD Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dicta iusto numquam obcaecati quae, repudiandae temporibus? Beatae, ea harum inventore natus officiis provident sit. Ab eligendi molestiae pariatur quasi repudiandae, voluptas. EOD;
Nowdoc
$str = <<<'EOD' Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dicta iusto numquam obcaecati quae, repudiandae temporibus? Beatae, ea harum inventore natus officiis provident sit. Ab eligendi molestiae pariatur quasi repudiandae, voluptas. EOD;
PHP数组
$juices = array("apple", "orange", "koolaid1" => "purple"); echo $juices[0].PHP_EOL; echo $juices[koolaid1];
简单的类与实例
class people { public $john = 'John Smith'; public $jane = 'Jane Smith'; public $robert = 'Robert Paulsen'; public $smith = 'Smith'; } $people = new people(); echo $people -> $john;
// 显示所有错误 error_reporting(E_ALL); $great = 'fantastic'; echo "this is {$great}"; echo "this is ${great}";
强制类型转换
(int)
(bool)
(float)
(string)
(array)
(object)
(unset) 转换为NULL
/******************************/
$object = (object)'prpr'; // 自动创建内置类,scalar属性可以访问到
echo $object -> scalar;
/******************************/
PHP类型转换是"+"
$foo1 = "0"; // 字符串 $foo2 = $foo1 + 2; // 整数(2) $foo3 = $foo2 + 1.3; // 浮点数(3.3) $foo4 = 5 + "10 little piggies"; // 整数(15) $foo5 = 5 + "10 small piggies"; // 整数(15)
resource数据类型:保存外部资源的一个引用,
打开文件、数据库连接、图形画布区域......
系统自动释放资源,很少需要手工释放内存
引用赋值:
原始变量、新变量,有一个改变都会改变
$foo = 'Bob'; $bar = &$foo;
PHP常用的预定义变量
PHP_OS // 当前操作系统信息
__FILE__ //本文件路径和文件名
PHP_VERSION
PHP中的全局变量必须加global才能在函数中使用
$a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b; //3 // 或者 function Sum() { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; }
【超全局变量】
超全局变量是在全部作用域中始终可以使用的内部变量。在函数或方法中也无需执行global $variable;就可访问它们。
【$GLOBALS】
引用全局作用域中可用的全部变量。是一个包含了全局变量的全局组合数组,变量的名字就是数组的键。
【$_SERVER】
一个包含头信息、路径、脚本位置等信息的数组。该数组的元素由Web服务器创建。
PHP_SELF:当前执行脚本的文件名,与document root有关。如:地址为http://example.com/test/php/foo.bar的脚本,$_SERVER['PHP_SELF']='/test.php/foo.bar'。(__FILE__常量包含了当前文件的完整路径和文件名)
argv:传递给该脚本的参数的数组。脚本以CLI方式运行时,argv传递给程序C语言样式的命令行参数。通过GET方式调用时,改变量包含Query String。
argc:脚本在CLI运行模式下传递给脚本参数的数目。
GATEWAY_INTERFACE:服务器使用的CGI规范的版本。如:“CGI/1.1"。
SERVER_ADDR:当前运行脚本所在服务器的IP地址。
SERVER_NAME:当前运行脚本所在服务器的主机名。如果脚本运行在虚拟主机中,该变量由虚拟主机所设置的值决定。
SERVER_SOFTWARE:服务器标识字符串,在响应请求的头信息中给出。
SERVER_PROTOCOL:请求页面时,通信协议的名称和版本。如:"HTTP/1.0"。
REQUEST_METHOD:访问页面使用的方法。如:GET、HEAD、POST、PUT。(如果请求方法为HEAD,PHP脚本将在Header头信息之后终止,不产生任何输出,没有输出缓冲)
REQUEST_TIME:请求开始时的时间戳。
QUERY_STRING:查询字符串。如果有的话,通过它进行页面访问。
DOCUMENT_ROOT:当前运行脚本所在的文档根目录。在服务器配置文件中定义。
HTTP_ACCEPT:当前请求头中的Accept项的内容(如果存在的话)。
HTTP_ACCEPT_CHARSET:当前请求头中Accept-Charset项的内容(如果存在的话)。
HTTP_ACCEPT_ENCODING:当前请求中Accept-Encoding项的内容(如果存在的话)。
HTTP_ACCEPT_LANGUAGE:当前请求中Accept-Language项的内容(如果存在的话)。
HTTP_CONNECTION:当前请求头中Connection项的内容(如果存在的话)。
HTTP_HOST:当前请求头中Host项的内容(如果存在的话)。
HTTP_REFERER:引导用户代理到当前页面的前一页的地址(如果存在)。由user agent设置决定。并不是所有用户都会设置该项,有的还提供的修改HTTP_REFERER的功能。所以该值不可信。
HTTP_USER_AGENT:当前请求头中User-Agent项的内容(如果存在)。该字符串表明了访问该页面的用户代理信息,如:Mozilla/4.5[en] (X11;U;Linux 2.2.9 i586)。此外可以使用get_browser()获取该值。
HTTPS:如果脚本通过HTTPS协议被访问,该值被设置为一个非空的值。使用IIS上的ISAPI方式时,如果不是通过HTTPS协议被访问,该值将为off。
REMOTE_ADDR:浏览当前页面的用户的IP地址。
REMOTE_HOST:浏览当前页面的用户的主机名。DNS反向解析不依赖于用户的REMOTE_ADDR。必须配置服务器以便产生该变量,如Apache中设置HostnameLookups On。
REMOTE_PORT:用户机器连接到Web服务器所使用的端口号。
SCRIPT_FILENAME:当前执行脚本的绝对路径。
SERVER_ADMIN:该值指明了Apache服务器配置文件中的SERVER_ADMIN参数。若脚本运行在虚拟主机上,则该值为那个虚拟主机的值。
SERVER_PORT:Web服务器使用的端口。默认是80.如果使用SSL安全连接,则该值为用户设置的HTTP端口。
SERVER_SIGNATURE:包含了服务器版本和虚拟机主机名的字符串。
PATH_TRANSLATED:当前脚本所在的文件系统(非文档根目录)的基本路径。这是服务器进行虚拟到真实路径的映像后的结果。
SCRIPT_NAME:包含当前脚本的路径。
REQUEST_URI:URI用来指定要访问的页面。
PHP_AUTH_DIGEST:当作为Apache模块运行时,进行HTTP Digest认证的过程中,改变量被设置为客户端发送的“Authorization”HTTP头内容。
PHP_AUTH_USER:当PHP运行在Apache或IIS模块下,并正在使用HTTP认证功能,改变量是用户输入的用户名。
PHP_AUTH_PW:当PHP运行在Apache或IIS模块下,并正在使用HTTP认证功能,改变量是用户输入的密码。
AUTH_TYPE:当PHP运行在Apache模块方式下,并正在使用HTTP认证功能,改变量是认证的类型。
PATH_INFO:包含客户端提供的,跟在真实脚本名称之后且在查询语句之前的路径信息(如果存在)。
ORIG_PATH_INFO:在被PHP处理之前,"PATH_INFO"的原始版本。
【$_GET】
HTTP GET变量。
包含通过URL参数传递给当前脚本的变量的数组。
通过urldecode()传递。
echo htmlspecialchars($_GET['name']);
【$_POST】
HTTP POST变量。
通过HTTP POST方法传递给当前脚本的变量的数组。
echo htmlspecialchars($_POST['name']);
【$_FILES】
HTTP文件上传变量。
通过HTTP POST方式上传到当前脚本的文件的数组。
【$_REQUEST】
HTTP REQUEST变量。
默认情况下包含了$_GET,$_POST,$_COOKIE的数组。
通过PHP的variables_order指令或import_request_variables()设置GPC的顺序。
【$_SESSION】
Session变量。
【$_ENV】
环境变量。
通过环境方式传递给当前脚本的变量的数组。这些变量被PHP解析器运行环境导入到PHP的全局命名空间。很多由支持PHP运行的Shell提供。
【$_COOKIE】
HTTP Cookies。
通过HTTP Cookies方式传递给当前脚本的变量的数组。
【$php_errormsg】
前一个错误信息。
$php_errormsg包含了由PHP生成的最新错误信息。改变量只在错误发生的作用域内可用,并且要求track_errors配置项是开启的(默认是关闭的)。
如果用户定义了错误处理句柄(set_error_handler())并且返回FALSE的时候,$php_errormsg就会被设置。
【$HTTP_RAW_POST_DATA】
原生POST数据。包含POST提交的原始数据。
【$http_response_header】
HTTP响应头。
与get_header()类似。当使用HTTP包装器时,改变量将会被HTTP响应头信息填充。该变量将被创建于局部作用域中。
【$argc】
CLI模式下传递给脚本的参数数目。仅在register_argc_argv打开时可用。
脚本文件名总是作为参数传递给当前脚本。
【$argv】
传递给脚本的参数数组。仅在register_argc_argv打开时可用。
第一个参数总是当前脚本的文件名。
PHP基础(一)的更多相关文章
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- node-webkit 环境搭建与基础demo
首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
- HTTPS 互联网世界的安全基础
近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- .NetCore MVC中的路由(1)路由配置基础
.NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...
- .NET基础拾遗(5)多线程开发基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
- .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]
方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值 ...
随机推荐
- IT公司笔试题(一)
1. 已知一个递归算法的算法复杂度计算公式为T(n) = T(n/2) + n,则T(n)的算法复杂度为多少? 解:O(n) T(n) = T(n/2) + n = T(n/4) + n/2 + n ...
- [MOSEK] Mosek求解中遇到的奇葩内存问题
在使用mosek优化库的时候,使用http://docs.mosek.com/7.0/capi/MSK_getxx_.html的 MSKrescodee MSK_getxx ( MSKtask_t t ...
- 读取XML文件的节点内的内容
<?xml version="1.0" encoding="utf-8" ?> <data> <tag3>15</ta ...
- Eclipse中出现-访问限制由于对必需的库XX具有一定限制,因此无法访问类型
在项目上点击右键,找到构建路径.然后选择配置配置路径.按如下步骤来配置: 1 点击库选项 2把系统库扩展开来 3点击访问规则 4点击右边的添加按钮 5添加访问规则 6 分辨率设为可访问 7规则模式设为 ...
- PHP创建缩略图造成图片质量低下的完美解决方法
近期弄个论坛,在首页要有个排名,显示评论最多的前十位用户的列表,列表有个略图是用户最新上传的作品,如果使用原来的图,图片过大,首页加载过慢,因此要使用略图 以上来使用imagecopyresized这 ...
- 查看mssql的锁
USE [master]GO /****** Object: StoredProcedure [dbo].[sp_who_lock] Script Date: 10/02/2014 06:18:19 ...
- 『TCP/IP详解——卷一:协议』读书笔记——07
2013-08-20 17:51:49 第三章 IP:网际协议 3.1 引言 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP和IGMP数据都以IP数据报格式传输.再来看一下图 ...
- Linux内核分析之计算机是如何工作的
一.计算机工作原理 本周实验主要是反汇编C代码,生成汇编程序.冯·诺依曼理论的要点是:数字计算机的数制采用二进制,计算机应该按照程序顺序执行.人们把冯·诺依曼的这个理论称为冯·诺依曼体系结构.CPU通 ...
- Modifiers: virtual, override, new, abstract, sealed, internal
internal 声明类.类成员.接口或接口成员具有内部可见性. internal 修饰符使类.接口或成员仅在当前包中可见. 当前包之外的代码不能访问 internal 成员.只有在同一程序集的文件中 ...
- gvim 备份文件去除 配置
默认情况下使用Vim编程,在修改文件后系统会自动生成一个带~的备份文件,看上去又乱又讨人厌. 怎么让Vim不自动生成这些备份文件呢? 1. 找到你的Vim安装目录,如果是在Windows下默认路径安装 ...