<?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打开时可用。

  第一个参数总是当前脚本的文件名。

最新文章

  1. AngularJS快速入门指南16:Bootstrap
  2. Android 监听锁屏、解锁、开屏 操作
  3. #Deep Learning回顾#之基于深度学习的目标检测(阅读小结)
  4. Swift学习--闭包的简单使用(三)
  5. PL/SQL之--触发器
  6. CodeForces 146A Lucky Ticket
  7. HQL查询及Hibernate对c3p0连接池的支持
  8. .net转java了
  9. JavaScript--execCommand指令集
  10. Mybatis高级映射、动态SQL及获得自增主键
  11. GC算法之串行并行并发
  12. ZOJ 3826 Hierarchical Notation 模拟
  13. jenkins+mail邮件配置
  14. 1.redis安装
  15. Python- - -练习目录
  16. [Hbase]Hbase章2 Hbase读写过程解析
  17. 在Linux服务器上运行Jupyter notebook server教程
  18. C数组&amp;结构体&amp;联合体快速初始化
  19. Object-C-block
  20. 【Hostname】Linux修改主机名称

热门文章

  1. java.net.MalformedURLException: Illegal character in URL
  2. goto
  3. LeetCode(五)
  4. java生成base64编码的png
  5. 代码中修改组件的margin属性
  6. Java签名
  7. mysql and 和 or 的 优先级和 查询问题
  8. 拾遗:『Linux Capability』
  9. [转载]PHP 5.6 on CentOS/RHEL 7.0 and 6.6 via Yum
  10. 【Java】XML解析之DOM4J