<?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基础(一)的更多相关文章

  1. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  2. node-webkit 环境搭建与基础demo

    首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. Golang, 以17个简短代码片段,切底弄懂 channel 基础

    (原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...

  5. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  6. HTTPS 互联网世界的安全基础

    近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...

  7. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  8. .NetCore MVC中的路由(1)路由配置基础

    .NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...

  9. .NET基础拾遗(5)多线程开发基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

  10. .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]

    方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值 ...

随机推荐

  1. (转)C#中两个问号和一个问号 ??

    小问题难倒很多人.今天发现了这个问题,搜了很长时间才看到记录下. 实例:dt.Columns.Add(firstRow.GetCell(i).StringCellValue ?? string.For ...

  2. 统计学习方法笔记(KNN)

    k近邻法(k-nearest neighbor,k-NN) 输入:实例的特征向量,对应于特征空间的点:输出:实例的类别,可以取多类. 分类时,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预 ...

  3. RecycleView在eclipse的初体验

    在sdk中找到v7包 \sdk\extras\android\support\v7\recyclerview 导入工程 Import\Android\Existing Android Code Int ...

  4. memcache的一致性hash算法使用

    一.概述 1.我们的memcache客户端(这里我看的spymemcache的源码),使用了一致性hash算法ketama进行数据存储节点的选择.与常规的hash算法思路不同,只是对我们要存储数据的k ...

  5. 2004FBI树

    题目描述 Description 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串. FBI树是一种二叉树[1],它的结点类型 ...

  6. BST、B树、B+树、B*树

    一. BST BST即二叉搜索树Binary Search Tree(又叫二叉排序树Binary Sort Tree).它有以下特点: 所有非叶子结点至多拥有两个儿子(Left和Right): 所有结 ...

  7. MyBatis源码分析(1)-MapConfig文件的解析

    1.简述 MyBatis是一个优秀的轻ORM框架,由最初的iBatis演化而来,可以方便的完成sql语句的输入输出到java对象之间的相互映射,典型的MyBatis使用的方式如下: String re ...

  8. C++ 无法将值写入注册表 HKEY_LOCAL_MACHINE\Sofeware\Microsoft\Windows\CurrentVersion\Run,以实现开机自启动应用程序。

    C++  无法将值写入注册表 HKEY_LOCAL_MACHINE\Sofeware\Microsoft\Windows\CurrentVersion\Run,以实现开机自启动应用程序.但可以写入到H ...

  9. rename() 是原子的么

    对一个文件做修改, 通常认为 直接 open-seek-write-write-close 不是原子的. 1. write 本身 不一定是原子的: https://blogs.msdn.microso ...

  10. Hibernate配置文件与映射文件的创建

    1. config文件的创建: 内容: <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hib ...