<?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. 使用Servlet实现图片下载

    package chensi.com; import java.io.FileInputStream; import java.io.IOException; import java.net.URLE ...

  2. Windows server 2003 WINS的配置和使用详解

    NetBios名称概述 网络中的一台计算机可以使用NETBIOS和DNS两种命名方式为其命名,在NETBIOS标准中,使用长度不超 过16个字符的名称来惟一标识每个网络资源,用于标识资源或服务类型.在 ...

  3. python 2.X

    from BaseHTTPServer import BaseHTTPRequestHandler

  4. C++通过模板实现多态

    #include <iostream> using namespace std; template<typename T> class Phone { public: void ...

  5. 去哪儿网mysql语法审核工具Inception正式开源

    Inception不仅仅是一个自动化审核工具,同时还具备执行SQL,并且生成对影响数据的回滚语句(类似于闪回的功能),这样一条龙便捷服务的工具.

  6. Happymenu新的开始

    1. 2014年10月28日入职happymenu,希望能和公司一起成长.年轻的时候就得多折腾! 2. 第一个任务:安装,配置ubuntu14环境,尽快熟悉操作.目前基本工作操作已经掌握. 安装好Ub ...

  7. [2012山东ACM省赛] Pick apples (贪心,完全背包,枚举)

    Pick apples Time Limit: 1000MS Memory limit: 165536K 题目描述 Once ago, there is a mystery yard which on ...

  8. [2013 Final] Colors

    Description Ziyao has a big drawing board with N * M squares. At the beginning, all the squares on t ...

  9. Debian修改ssh端口和禁止root远程登陆设置

    linux修改端口22vi /etc/ssh/sshd_config找到#port 22将前面的#去掉,然后修改端口 port 1234重启服务就OK了service sshd restart或/et ...

  10. Dynamic CRM 2013学习笔记(十一)利用Javascript实现子表合计(汇总,求和)功能

    我们经常有这样一种需求,子表里新加或修改一数值后,要马上在主表里把它们的和显示在主表上.如果用插件来实现,可以实现求和,但页面上还要刷新一下才能显示正确.这时就考虑到用JS来实现这一功能,并自动刷新页 ...