首页 > 代码库 > PHP基础(一)

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 = <<<EODLorem 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基础(一)