PHP操作符可变变量测试变量等总结

《PHP&MYSQL WEB开发》读书笔记

第一章:PHP快速入门,主要记录一些操作符和不常见变量用法

1、PHP注释的三种方法

  • //注释内容
  • /*注释内容*/
  • #注释内容,这是shell的注释方法

2、三种获取表单变量的方法

  • $name,特点是最简单,缺点是需要开启register_globals配置选项,该选项会引发安全问题
  • $_POST[‘name’],最常用的方法
  • $HTTP_POST_VARS[‘name’],已经被弃用了

3、显示字符串的三种方法

  • 单引号,‘xxx$nameyyy”zzz”’,特点是将里面的文本都当成纯文本,不会计算其内容。
  • 双引号,“xx$nameyy\”\”zzz”,特点是会将里面的变量替换成其内容,如果有双引号,需要转义
  • Heredoc语法(<<<),和双引号一样,使用方法是
    • echo <<<EEE
    •     内容,可以是任何不包括EEE字符串的内容,里面的变量会被解释
    • EEE

4、PHP的数据类型

    • Integer整形
    • Float或者Double,浮点型
    • String字符串
    • Boolean,布尔类型
    • Array数组类型
    • Object对象类型
    • NULL空类型
    • resource资源类型,比如数据库连接、打开的文件

5、PHP的类型转换

PHP的类型转换方法,和C语言的是相同的,因此只要把相同的语句写过来即可

$discount = (float)$discount; //这完全是可以的

有以下多种类型转换:

(int)  (double)  (string)  (array)  (object)

注意,这里是强制类型转换,如果要只声明一个变量,不需要加括号,比如

//这个函数声明,把参数声明为数组类型,如果加了括号,就变成了强制类型转换,这里不需要加括号

function   printArr( array  $arr);

例如代码:

//函数,用于打印数组,注意,形参类型不用加括号
function printArr( array $arr){
	echo "<pre>";
	print_r($arr);
	echo "</pre>";
	echo "<br>";
}

6、PHP之可变变量

可变变量允许我们动态的改变一个变量的名称

$varname = “username”;

$$varname = “crazyant”; //这相当于$username=”crazyant”

7、声明和使用常量

define(‘USER_COUNT”,100”); //声明常量的方法

$total = USER_COUNT * $count; //使用常量的方法,就是不用加$符号

PHP预定义了很多的常量,它们都可以使用phpinfo()函数进行查看

8、PHP变量的作用域

这块感觉不是很清楚,因此都记录一下

  • 内置超级全局变量,可以再脚本任何地方可用
  • 常量被定义以后,全局可见
  • 脚本中的变量,全局可见,但函数中不可见
  • 函数内部使用全局变量,需要声明一下(global),声明的名字要一样
  • 函数内部的静态变量,外部不可见,但函数多次运行可以保存它的值
  • 函数内部的变量时局部变量,函数结束则消失

9、超级全局变量的完整列表

  • $GLOBALS
  • $_SERVER 这是服务器环境变量数组
  • $_GET
  • $_POST
  • $_COOKIE 这是cookie变量数组
  • $_FILES
  • $_ENV
  • $_REQUEST
  • $_SESSION

10、引用操作符

&是引用操作符,和C++的引用操作符用法一模一样

$a=5;

$b=&$a;

$a=7; //这时候$a和$b的值都是7了

可以通过重置来改变它们所指向的地址

unset($a); //这样的话$a就没有了,相当于销毁了指针,可是$b还有,值还是7

11、PHP错误抑制操作符

将@符号,放在任何表达式前面,如果表单时出现了错误或警告,都不会显示出来,比如@$a/0; 该语句就不会显示错误。

12、PHP执行服务器命令操作符

$out = `ls -la`;

echo “<pre>”.$out.”</pre>”;

这两条语句,会在linux上执行语句,windows下可以改成dir c:

13、PHP关于数组的操作符

array a,b,c;

c = a+b;//得到包括a和b所有元素的新数组

注意,这里的相加,如果a和b都是键值对,那么没有问题,相当于合并,可如果只有值的话,前面数组的0元素会被后面的0元素覆盖,以此类推,因此要合并数组,还是用array array_merge ( array $array1 [, array $... ] )为好

测试如下:

<?php
//函数,用于打印数组,注意,形参类型不用加括号
function printArr( array $arr){
	echo "<pre>";
	print_r($arr);
	echo "</pre>";
}
$arra = array('aa','ab');
echo "<b>数组A;</b><br>";
printArr($arra);

$arrb = array('ba','bb');
echo "<b>数组B;</b><br>";
printArr($arrb);

$arrc = $arra+$arrb;
echo "<b>A+B:</b><br>";
printArr($arrc);

$arrc = array_merge($arra,$arrb);
echo "<b>array_merge数组A和B;</b><br>";
printArr($arrc);
?>

运行截图:

image

a==b;//是否具有相同的键值对

a===b;//是否具有相同的键值对和顺序

14、PHP类型操作符

if($obj  instanceof   STUDENT){}

判断一个对象,是不是某个类的一个实例

15、PHP格式化小数位数的方法

使用函数number_format进行

比如number_format($price, 2),就是将$price变量的小数剩下2位

16、测试设置变量的类型

//获取或设置参数的类型,返回的就是bool、int、double、string、array、object、resource这些关键词

string gettype(mixed var);

bool settype(mixed var, string type); //设置变量的类型

17、PHP测试变量类型的函数

PHP提供一些测试函数,用变量作为参数,返回true或者false,用来测试变量的类型:

  • is_array()
  • is_double,is_float(),is_real()
  • is_long(),is_int(),is_integer()
  • is_string()
  • is_bool()
  • is_object()
  • is_resource()
  • is_null()
  • is_scalar(),检查是否是标量(整数、bool值、字符串、浮点数)
  • is_numeric(),检查是否是任何类型的数字或者数字字符串
  • is_callable(),检查变量是否是有效的函数名称

18、PHP测试变量的状态

  • bool isset(mixed var);//测试变量是否存在,存在返回true
  • void unset(mixed var);//销毁一个变量
  • bool empty(mixed var);//测试变量是否存在,以及值是否为非空或者非0

19、PHP变量的重解释(应该和强制类型转换类似)

  • int intval( mixed var  [, int base]);//其中base可以指定进制数
  • float floatval(mixed var);
  • string strval(mixed var);

20、elseif=else if

至此第一章内容结束,学习的新内容,主要是操作符,比如@、``、&、变量类型、测试变量类型等

你可能感兴趣的:(PHP)