PHP学习一(基础)

  WEB的应用

  当客户端向服务器的程序提出请求时,web服务器根据请求响应对应的页面,当页面中含有PHP脚本时,服务器会交给PHP解释器进行解释执行,将生成的html代码再回传给客户端,客户端的浏览器解释html代码,最终形成网页格式的页面。

  PHP能做什么

  PHP主要应用于三个领域:

  PHP分析器,一个WEB服务器器和一个WEB浏览器。

  PHP语法结构

  编程语言的词法结构(lexical structure)是指管理如何用语言写程序的基本规则的集合。

  用户自定义的函数名或类名都是不区分大小写的,变量区分大小写。这就是说,$name 、$NAME 和$NaMe是三个不同的变量。

  PHP用分号来分隔简单的语句。

  PHP注释

  PHP支持C、C++和Shell脚本风格的注释,如下:

  // 单行注释

  /*    */  多行注释     (注意:不能嵌套)

  # 脚本注释

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  常量

  常量是一个固定数值,用一个简单的标识符进行定义,常量默认为大小写敏感。

  按照惯例常量标识符总是大写的。

  define()用这个函数来定义常量。

  string(字符串)常量分为:内置常量和自定义常量。

  常数只能包含标量数据(boolean(布尔),integer(整形),float(浮点数))

  内置常量:PHP系统提供的在任何页面数值不会改变的常量

  PHP_OS:显示服务器的操作系统版本

  PHP_VERSION:显示PHP版本

  一些常见的系统常量

  __FILE__:PHP文件名,假如是引用文件,则显示引用文件名

  __LINE__:PHP文件的行数

  TRUE FALSE:表示真假的常量

  E_ERROR:指明了代码中最近的错误处

  E_WARNING:指明了代码中最近的警告处

  E_PARSE:分析代码何处有着潜在的问题

  E_NOTICE:为发生不寻常但不一定是错误的地方

  自定义常量

  用define()来定义常量

  define(“mycomputer”, “IBM”);

  定义常量:mycomputer  常量的值为 IBM

  defined(“mycomputer”);

  检测常量是否被定义,已定义返回1  否则返回空

  变量

  PHP 中一个美元符号($)后面跟上一个变量名称,即表示一个变量。变量的名称是对大小写敏感的

  < php

  $var = ‘Bob';

  $Var = ‘Joe';

  echo “$var, $Var”;    // 输出 “Bob, Joe”    可以同时输出两个变量名

  $4site = ‘not yet';       // 非法变量名;以数字开头   变量不能以数字开头

  $_4site = ‘not yet';      // 合法变量名;以下划线开头   可以以下划线开头

  $i站点is = ‘mansikka';    // 合法变量名;      可以用中文 但是不建议使用

  isset($var)      //检查变量是否定义

  unset($var)      //删除变量$var

  empty($var)      //判断一个变量的值是否存在

  echo $var        //空

  >

  可变变量

  一个可变变量获取了一个普通变量的值作为这个可变变量的变量名

  < php

  $a = 'hello';      //普通变量

  $$a = 'world';      //可变变量 可变变量用一个普通变量的值作为可变变量的名

  echo "$a ${$a}";    //输出:hello world

  echo "$a $hello";    //输出:hello world

  >

  常量和变量不同

  常量前面没有美元符号($);

  常量只能用 define( ) 函数定义,而不能通过赋值语句;

  常量可以不用理会变量范围的规则而在任何地方定义和访问;

  常量一旦定义就不能被重新定义或者取消定义;

  常量的值只能是标量

  数据类型

  四种标量类型:

  布尔型(boolean)

  整型(integer)

  浮点型(float)(浮点数,也作double)

  字符串(string)

  两种复合类型:

  数组(array)

  对象(object)

  最后是两种特殊类型:

  资源(resource)

  NULL 空

  PHP是一种非常弱的类型语言。

  在PHP中,变量的类型通常不是由程序员设定的,确切地说,是根据该变量使用的上下文在运行时(即变量的值)决定的。

  实例:

  < php

  $bool = TRUE;       // 布尔型

  $str  = “foo”;      // 字符串

  $int  = 12;         // 整型

  echo gettype($bool);   // 输出 boolean   (gettype获取变量的类型)

  echo gettype($str);    // 输出 string

  >

  整型

  整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(- 或者 +)。

  < php

  $a = 1234;   // 十进制数

  $a = -123;   // 一个负数

  $a = 0123;   // 八进制数(等于十进制的 83)

  $a = 0x1a;   // 十六进制数(等于十进制的 26)

  >

  浮点型

  浮点数(也叫浮点数,双精度数或实数)可以用以下任何语法定义:

  < php

  $a = 1.234;

  $a = 1.2e3;

  $a = 7E-10;

  >

  字符串

  string是一系列字符。在 PHP 中,字符和字节一样,也就是说,一共有 256 种不同字符的可能性。这也暗示 PHP 对 Unicode 没有本地支持。(关于字符串类型后面专有一章详细讲解)

  < php   $str = “hello world!”;    >

  布尔型

  这是最简单的类型。boolean 表达了真值,可以为 TRUE 或 FALSE。

  当其他类型转换为 boolean类型 时,以下值被认为是FALSE:

  布尔值 FALSE

  整型值 0(零)

  浮点型值 0.0(零)

  空白字符串和字符串 "0"

  没有成员变量的数组

  没有单元的对象(仅适用于 PHP 4)

  特殊类型 NULL(包括尚未设定的变量)

  所有其它值都被认为是 TRUE(包括任何资源)。

  数组

  数组是PHP中的一种重要的数据类型。一个标量只能存放一个数据, 而数组可以存放多个数据。

  $my=array(‘1',‘2',‘abc',‘d');

  对象(Object)

  对象是一种高级的数据类型以后会学

  资源(Resource)

  资源是由专门的函数来建立和使用的

  类型强制转换

  PHP 中的类型强制转换:在要转换的变量之前加上用括号括起来的目标类型。

  允许的强制转换有:

  (int), (integer) - 转换成整型

  (bool), (boolean) – 转换成布尔型

  (float), (double), (real) - 转换成浮点型

  (string) - 转换成字符串

  (array) - 转换成数组

  (object) – 转换成对象

  < php

  $foo = 10;   // $foo is an integer

  $bar = (boolean) $foo;   // $bar is a boolean

  >

  强制类型转换函数

  使用函数settype(mixed var, string type)

  还有3个更为具体的转换函数:

  intval()     //转换整型

  floatval()    //转换浮点型

  strval()    //转换字符串

  < php

  $str=“123.9abc”;

  $i=intval($str);  //转换成整形

  $flo=floatval($str);  //转换成浮点

  $str=strval($flo);  //转换成字符串

  >

  关于变量的常用函数

  1、var_dump(mixed var):

  查看某个变量或表达式的值和类型。

  2、gettype (mixed var):

  查看某个变量的类型。

  3、is_xxxtype(mixed var):

  查看是否是某种类型。格式:is_int()、is_string()、is_null()*

  4、settype(mixed var, string type):

  将一个变量强制转换为某类型。还可以对其使用强制转换 ,会影响到被转换的值。

  类型转化的细节

  1.数字(浮点数和整数类型间可以互相转化)

  整数转化为浮点型:由于浮点型的精度范围远大于整型,所以转化后的精度不会改变。

  浮点型转化为整型:将自动舍弃小数部分,只保留整数部分。如果一个浮点数超过整型数字的有效范围,其结果将是不确定的。

  整型的最大值约是2.147e9.

  < php

  $real_num=3.1e9;

  echo $real_num;

  echo (int)$real_num;  //输出一个不确定的值。

  >

  因为溢出的部分已经丢失,无法给出一个确切的原始结果。

  2.布尔型与NULL

  一个布尔型变量可以转化为整型(前面)

  NULL值转为字符串, 为空字符“”

  字符串

  字符串可以转化为数字。转化后的数字是从字符串开始部分的数值型字符串。数值型字符串包括用科学计数法表示的数字。

  < php

  $number=intval(“5.6abc”);      //intval获取变量的整数值

  $number=(float)”+5.6abc”;+-为正负

  $number=floatval(“-1.2e3f4g5”);

  $result=“12.3xy45”-6;  =6.3

  $result=“xy1234”/5;=0

  $result=“1.2.3.4”*5;=6

  $result=1+”-1.3e3”;=-1299

  >

  数组和对象转化为字符串,结果将是”Array”和”Object”.

  资源型数据转化为字符串。(Resource id#1)

  $fp=fopen(“foo”, “w”);

  echo get_resource_type($fp);//输出file 一个文件的资源。

  数组

  将一个布尔值、数字或字符串转化为数组型数据

  将得到一个以上述类型数据元素的数组

  将NULL转化为数组,会得到一个空数组

  将对象转换成一个数组,所得到的数组的元素为对象的属性,其键名为成员变量名。

  PHP的外部变量

  PHP的特点之一是可以用简单的方式处理表单数据,获取环境变量。在PHP中,这些外部数据或变量保存在一种特殊的全局数组中。

  表单数据

  $_POST[“name”];

  $_GET[“name”];

  $_REQUEST[“name”];  是上面两种都等到的

  print_r($_POST);  打印出外部变量的值

  环境变量

  PHP中使用$_ENV和$_SERVER获取系统的环境变量。

  这些环境变量包含了WEB服务器的一些配置信息,以及浏览器的一些状态信息。

  使用函数phpinfo()可以返回更多的环境信息,其中包含了$_ENV和$_SERVER的内容。

  程序可以根据不同的环境,如浏览器的类型等,设置不同的输出效果

  表达式

  表达式是变量、常量和运算符号的组合。

  表达式是PHP中的重要内容,PHP中几乎所有的东西都可以称为表达式。

  $x=10;

  $y=($x=10);

  $y+=($x=10);

  $z=&$x;

  $condition $true_item:false_item;

  条件?真:假

  引用

  引用操作符&可以在关联赋值中使用,就像一个别名,使得变量都指向了内存的相同地址。

  < php

  $a=5;

  $b=&$a;

  echo $b;  //输出5

  $a=7;

  echo $b  //输出7

  >

  通过unset($a)重置变量与内存的关联//关联之后两个变数的值是相等的