PHP基础(一)

PHP语言基础

  • PHP文件格式
    PHP文件格式非常简单,本质上而言就是一个文本文件。其保存成后缀为“.php”的文件。 一个完整的PHP文件由以下元素构成:
    (1)HTML标记;(2)PHP标记;(3)PHP代码;(4)注释;(5)空格
  • PHP标记
    由于PHP嵌入在HTML中,因此要标记对来区分。可以用下四种区分方式标记PHP代码
    (1)<?php……?>(推荐使用!!)(2)<?……?>
    (3)<script language=php>……</script>(4)<%......%>
  • PHP语法与注释
    在书写PHP代码时,每句完整代码后面都要加分号“;”。而对于控制语句,一般不需要加分号“;”,如果控制语句下面有多行代码,则必须使用大括号“{……}”扩起来。
//例如,以下为一个简单PHP程序代码。
<Html>
<head>
<title>Hello World!</title>
</head>
<body>
<?php
if(a==b)
{
    echo " a与b一样大";
    echo "欢迎学习php语言";
}
?>
</body>
</html>

二、PHP变量和常量

  • 变量的命名
    在PHP中,对变量名的长度没有任何限制,在变量名中可以使用数字和字母等字符,但是需要满足以下约定:
    (1)PHP变量名是区分大小写的,这和C语言是一致的
    (2)变量名必须以美元符号($)开始;
    (3)变量名必须以字母或下划线 “_” 开头,不能以数字字符开头;
    (4)变量名只能包含字母数字字符以及下划线。
    (5)变量名不能包含空格。如果变量名由多个单词组成,那么应该使用下划线进行分隔(比如 $my_string),或者以大写字母开头(比如$myString)。
  • 变量的赋值
    和很多语言不同,在PHP使用变量前不需要声明变量,只需给变量赋值即可。变量赋值,是指给变量一个具体的数据值,对于字符串和数字类型的变量,可以通过赋值运算符“=”来实现。语法格式为:<?php $name=value; ?> 例如:
<?php 
$myname="James"; 
$yourname="Jackson";
?>

除此之外,还有两种给变量赋值的方式,一种是变量间的赋值,变量间的赋值是指赋值后两个变量使用各自的内存,互不干扰。例如:

<?php 
$myname="James";      //给变量$myname直接赋值
$yourname=$myname;   //使用$myname初始化$yourname
$myname="Jeffery";     //改变变量$myname的值
echo $yourname;        //输出变量$yourname的值
?>
//以上代码输出结果为:James
//从结果可以看出,改变变量$myname的值后,变量$yourname的值并没有跟着变化。

另一种是引用赋值,引用的概念是用不同的名字访问同一个变量内容。当改变其中的一个变量的值时,另一个也跟着发生变化。使用”&”符号来表示引用。例如:

<?php 
$myname="James";        //给变量$myname直接赋值
$yourname=&$myname;     //使用引用赋值,此时$yourname的值为"James“
$myname="Jeffery";      //改变$myname的值,此时$yourname的值也变为"Jeffery"
echo $yourname;         //输出变量$yourname的值
?>
//以上代码输出结果为:Jeffery
//从上面输出结果看出,改变变量$myname的值后,变量$yourname的值也跟着发生了变化
  • 可变变量
    可变变量是一种独特的变量,它允许动态改变一个变量名称。其工作原理是该变量的名称由另外一个变量来确定,实现过程是在变量的前面再多加一个美元符号”$”。例如:
<?php
$change_name = "temp";	//声明变量$change_name
$temp = "You can see me!";    //声明变量$temp
echo $change_name ;     	    //输出变量$change_name
echo "&nbsp;&nbsp;" ;
echo $$change_name ;  //通过可变变量输出$temp的值
?>
//以上代码输出结果为:temp  You can see me!
//以上代码首先定义两个变量$change_name$temp,并且输出变量$change_name的值
//然后使用可变变量来改变变量$change_name的名称(变为$temp),
//输出改变名称后的变量值(变量$temp的值)。
  • 预定义变量
    PHP还提供了很多非常实用的预定义变量,通过这些预定义变量可以获取到用户会话、客户机操作系统的环境和服务器操作系统的环境信息。常用的预定义变量如表所示。

  • 常量的声明和使用
    常量可以理解为值不变的量。常量值被定义后,在脚本的其他任何地方都不能改变。一个常量由英文字母、下划线和数组组成,但数字不能作为首字母出现。在PHP中使用define()函数来定义常量,该函数的语法为:
    bool define ( string $constant_name , mixed $value [, bool $case_insensitive = False ] )
    获取常量的值有两种方法:一种是使用常量名直接获取值;另一种是使用constant()函数,constant()函数和直接使用常量名输出的效果是一样的,但函数可以动态地输出不同的常量,在使用上要灵活方便得多。函数的语法格式为:Mixed constant(string $constant_name)
    要判断一个变量是否已经定义,可以使用defined()函数。函数的语法格式为:
    bool defined(string $constant_name),成功则返回True,否则返回False。
    参数constant_name为要获取常量的名称,也可为存储常量的变量。如果成功则返回常量的值,否则提示错误信息常量没有被定义。
<?php
define ("PI","3.1415926");
echo PI."<BR>";         //输出常量PI
echo Pi."<BR>";         //输出"Pi",表示没有该常量
define ("COUNT","大小写不敏感的字符串",True);
echo COUNT."<BR>";      //输出常量COUNT
echo Count."<BR>";      //输出,设定大小写不敏感
$name = "count";
echo constant ($name)."<BR>";      //输出常量COUNT
echo (defined ("PI"))."<BR>";      //如果定义了常量则返回True,输出显示为1
?>
  • 预定义常量
    PHP可以使用预定义常量获取PHP中的信息。常用的预定义常量如表所示。
    注意:“__FILE__”和“__LINE__”中的“__”是两条下划线,而不是一条“_”。例如:
<?php
echo "当前文件路径: ".__FILE__;
echo "<br>当前行数:".__LINE__;
echo "<br>当前PHP版本信息:".PHP_VERSION;
echo "<br> 当前操作系统: ".PHP_OS ;
?>

三、PHP的数据类型

PHP是一种类型比较弱的语言,这意味着变量可以包含任意给定的数据类型,该类型取决于使用变量的上下文环境。在PHP中,对变量的数据类型不需要声明,可以直接为其赋值,如下所示:$number = 100; //表示$number为整型 , $str="I like PHP"; //表示$str为字符串型

PHP中的数据类型分为两种,一种是标量数据类型,这是编程语言中最常见的简单数据类型;另一种表示复合数据类型,即将多个简单的数据类型组合在一起,并将它们存储在一个变量名中。 标量数据类型有如下几种:
(1)布尔型(boolean);(2)整型(integer);
(3)浮点型(float)(浮点数,也做“double”);(4)字符串(string)。
复合数据类型有如下几种:
(1)数组(array);(2)对象(object)
另外,PHP中还有两种特殊的数据类型:
(1)资源(resource);(2)空值(NULL)

  • 布尔型
    在所有的PHP变量中,布尔型是最简单的变量。布尔变量保存一个True或者False值,True和False实际上代表数字1和0,因此True在输出时显示为1,False在输出时显示为0。当转换布尔型时,以下值被认为是False:
    (1)布尔值False;(2)整型值0(零);(3)浮点型值0.0(零);
    (4)空白字符串和字符串“0”;(5)没有成员变量的数组;(6)空值NULL。
    而其他所有值都被认为是True。通常布尔值可以用一些表达式来返回。如“a>b”、“a=b”等,可以在条件语句中应用。
  • 整型
    整型数据类型只能包含整数。这些数据类型可以是正数也可以是负数。在给一个整型变量赋值的时候,可以采用十进制、十六进制或者八进制形式来指定。十进制就是日常使用的数字;八进制,数字前必须加上“0”;十六进制,数字前必须加“0x”。例如:
$int1=100;   //一个十进制整数100
$int2=-100;  //一个十进制负数
$int3=0666;  //一个八进制整数
$int4=0x64;  //一个十六进制整数
  • 浮点型
    浮点数也称为双精度数或实数(PHP中不使用单精度浮点数)。浮点型数据类型可以用来存储数字,也可以用来保存小数。它提供了比整数大得多的精度。浮点数的字长和平台相关,在PHP中,浮点数可以表示-1.8e308~+1.8e308之间的数据,并具有14位十进制数字的精度(64位IEEE格式)。
    浮点数既可以表示为简单的浮点数常量,例如3.14,也可以写成科学计数法的形式,尾数和指数之间用e或E隔开,例如314e-2表示314×10的-2次方,注意这种表示形式基数是10,如果尾数的小数点左边或右边没有数字则表示这一部分为零,例如3.e-1,.987等等。
  • 字符串
    字符串是连续的字符序列,字符串中的每个字符只占用一个字节。字符串在每种编程语言中都有广泛的应用。在PHP中,定义字符串有以下三种方式。
    • 单引号形式。
      单引号字符串的赋值方式如下:$str = '我是单引号中的字符串';
      要将字符串输出到浏览器中,使用关键字“echo”或者“print”:
      echo $str; 或者 print $str;
      使用单引号表示字符串的时候,如果要在字符串中显示反斜杠和单引号的时候,应该使用反斜杠来进行转义。在用单引号定义字符串中写变量名的时候,PHP不会将其按照变量进行处理。例如会将’$var’直接输出“$var”
    • 双引号方式。
      双引号字符串的赋值方式如下:$str = "我是双引号中的字符串";
      同理将字符串输出到浏览器中,也使用关键字“echo”或者“print”。双引号比单引号支持更多种类的转义字符,例如\n(换行),\t(水平制表符,与TAB键相当),\”(显示双引号),\(显示反斜杠),$(显示一个$符号,否则会被当成变量),\r(回车键)。
      使用双引号和单引号都可以定义字符串,但是绝不是说两者就是等价的。当使用单引号的时候,程序不会首先去判断该字符串中是否含有变量,而是将全部的内容当成字符串来输出。当使用双引号的时候,程序会首先去判断字符串中是否含有变量,如果含有变量的话,则直接输出变量的值
    • 定界符方式
      定界符采用两个相同的标识符来定义字符串,使用定界符来定义字符串的时候要特别注意开始和结束符必须相同,标识符必须符合变量的命名规则。使用定界符来定义字符串的时候要特别注意开始标识符前面必须有三个尖括号<<<,结束标识符必须在最后一行的开始处,前面不能有任何空格或者任何其他多余的字符,开始和结束标识符后面的任何空格都会导致语法错误。
//例如下面代码使用定界符方式定义了字符串变量$heredoc_str
$heredoc_str =<<<heredoc_mark
    你好<br>
    美元符号  $ <br>
    反斜杠   \<br>
    "PHP语言"<br>
    'ASP语言'
heredoc_mark;
    echo $heredoc_str;
//注意上面代码中的定界符“heredoc_mark”可以自己命名,只要符合变量命名规则即可。

定界符和双引号的使用效果相同,也就是说定界符可以直接输出变量的值,同时也支持使用各种转义字符。唯一的区别就是使用定界符定义字符串中的双引号不需要使用转义字符就可以实现。

  • 数据类型转换
    数据类型转换是编程语言的常用功能,通常有以下三种方式进行数据类型转换。
    • 强制类型转换
      在变量或值前面加上要转换的类型可以进行强制转换,PHP支持下列几种强制类型转换:
      (array) 数组;
      (bool)或(boolean) 布尔值;
      (int)或(integer) 整数;
      (object) 对象;
      (real)或(double)或(float) 浮点数;
      (string) 字符串
      将一个双进度数强制转换成整数时,将直接忽略小数部分。
      $a = (int) 14.8; // $a = 14
      将字符串转换成整数时,取字符串最前端的所有数字进行转换,若没有数字,则为0。
      $a = (int) "There is 1 tree." // $a = 0
      $a = (int) "48 trees" // $a = 48
      任何数据类型都可以转换成对象,其结果是,该变量成为了对象的一个属性。
      $model = "Toyota";
      $obj = (object) $model;
      然后可以如下引用这个值:print $obj->scalar; //返回 "Toyota"
    • 类型自动转换
      当字符串和数值做加法运算时,字符串转换成数值对应的类型。
      若希望数值当成字符串和原有的字符串进行合并操作,可以使用拼接操作符”.”,例如:
      $a = "This is "; $b = 3;
      echo $a.$b; //输出字符串This is 3
    • 利用类型转换函数进行转换
      常用的类型转换函数有:
      (1)获取类型string gettype(mixed $var)
      (2)转换类型boolean settype(mixed $var, string $type)
      函数将var变量转换成type指定的类型。type可以是下列7个值之一:array、boolean、float、integer、null、object、string。如果转换成功,返回True;否则为False。例如:
$num=12.6;    
$flg=settype($num,"int");    
var_dump($flg);    //输出bool(true)    
var_dump($num);  //输出int(12)
//var_dump函数为一个简单的判断变量类型的函数。

另外还可以使用3个具体类型的转换函数intval()、floatval()和strval()进行类型的转换,例如:

$str="123.9abc";    
$int=intval($str);        //转换后数值123
$float=floatval($str);   //转换后数值123.9    
$str=strval($float);      //转换后字符串"123.9"    

PHP提供一系列函数来识别变量的值是否是指定的类型,具体如下:

is_array()       // 是否是数组
is_bool()        // 是否是布尔值
is_float()        // 是否是浮点数
is_integer()     // 是否是整数
is_null()         // 是否是空
is_numeric()    // 是否是数值
is_object()      // 是否是对象
is_resource()   // 是否是资源类型
is_scalar()     // 是否是标量,标量变量仅包含integer、float、string或 boolean的变量
is_string()      // 是否是字符串

四、PHP运算符

运算符是一个特殊符号,它对一个值或一组值执行一个指定的操作。PHP具有C、C++和Java语言中常见的运算符,这些运算符的优先权也是一致的。在PHP中包含以下运算符:
(1)算术运算符;(2)赋值运算符;(3)比较运算符;(4)逻辑运算符

  • 算术运算符
    算术运算符号用来处理四则运算,是最简单和最常用的符号,尤其是数字的处理,几乎都会使用到算术运算符。
    自加和自减运算符,当放在变量的前面时,将会首先将变量的值加1或者减1,然后返回变量的值;而当放在变量的后面时,将会先返回变量的当前值,然后将变量的值加1或者减1。例如:
$a=20;
echo "a++:" . $a++ ."<br>";  //后加,结果为20
echo "变量a的新值:" . $a ."<br>";//结果为21
$a=20;  //重新赋值
echo "++a:" . ++$a ."<br>";  //先加,结果为21
echo "变量a的新值:" . $a ."<br>";//结果为20
  • 比较运算符

  • 赋值运算符
    在做简单的操作时,赋值运算符起到把运算结果值赋给变量的作用。在PHP中,除了基本的赋值运算符“=”之外,还提供了若干组合赋值运算符。这些赋值运算符提供了做基本运算和串运算的方法。

  • 逻辑运算符

猜你喜欢

转载自blog.csdn.net/zhili_wang/article/details/80527942