Wills's blogs

PHP学习笔记

  1. php支持8种原始数据类型
  • 4种基本类型:
    (1) integer(整型)
    (2) float/double(浮点型)
    (3) string(字符串)
    (4) boolean(布尔型)

  • 2种复合类型:
    (5) array(数组)
    (6) object(对象)

  • 2种特殊类型:
    (7) resource(资源)
    (8) NULL

2. php中不是只有false值才为假,以下8种情况也为false

(1) 整型0
(2) 浮点型0.0
(3) 字符串”0”
(4) 空字符串””
(5) 空数组
(6) 空对象
(7) null
(8)从空标记生成的SimpleXML对象

所有其他值都被认为是true(包括任何资源)

1
2
3
4
5
6
echo 0==false;//1
echo 0.0==false;//1
echo "0"==false;//1
echo ""==false;//1
echo array()==false;//1
echo null==false;//1

3. 单引号和双引号的区别

双引号中所包含的的变量会自动被替换成实际数值,而单引号中包含的变量则按普通字符串输出。

1
2
3
$a = 'php';
echo '$a';//'$a'
echo "$a"//'php'

4. 声明一个数组

1
2
3
4
5
$arr = array(
'name' => 'phpchina',
'url' => 'www.phpchina.com',
'age' = > 13
);

5. 声明一个对象

1
2
3
4
5
6
7
8
class PHPChina{
private $name = 'phpchina';
public function sayHi(){
echo 'Hi' . $this->name;
}
}
$php = new PHPChina();
var_dump($php);

6. 输出null的情况

1
2
3
4
$a = null;
$b;
$c = 10;
unset($c);
  • unset()—— 用来销毁变量
  • is_null()—— 判断某个变量是否为null,返回一个boolean值,如果为null值,那么输出true,否则输出false

7. 数据类型转换

两种方式:
(1) 在需要转换类型的变量前加上括号括起来的数据类型则名称即可:(int)$a
(2) 使用settype()函数来实现:settype($a,’int’); //将变量a转换成整型类型
基本转换:
(1) null、0和未赋值的变量或数组都会转换为false
(2) 当boolean类型转换为int类型时,true转换为1,false转换为0
(3) 字符串转换成int类型时,字符串如果以数字开头就截取到非数字部分,否则输出0;其他数据类型转换为object类型时,其中名为scalar的成员变量将包含原变量的值
强制转换:
前面转换方式的第一种就是强制转换。

8. 定义常量

常量在使用前必须先定义,常量的名字一般使用大写字母组合,不建议使用小写字母。

1
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

最后一个参数可选,表示常量是否区分大小写,如果设定为true,表示不区分大小写,默认为false,即默认是区分大小写的。
例子:

1
define('NAME','lei');

defined() — 检查某个名称的常量是否存在,语法如下:

1
bool defined ( string $name )

9. 系统默认常量(预定义常量)

__FILE__—— 文件的完整路径和文件名
__LINE__—— 当前行号
__CLASS__—— 类的名称
__METHOD__—— 类的方法名
PHP_VERSION—— php的版本
PHP_OS—— 运行php程序的操作系统
DIRECTORY_SEPARATOR—— 返回操作系统的分隔符 windows下返回“\”,linux下返回“/”

10. php变量

变量名是区分大小写的,一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。按照正常的正则表达式,它将被表述为:’[a-zA-Z\x7f-\xff][a-zA-Z0-9\x7f-\xff]*’。
不需要预先定义,可以直接在使用时定义变量。同时在定义变量时,也可以不用初始化变量。
给变量赋值有两种方式,分别是传值赋值和引用赋值:
(1)传值赋值,是使用“=”直接将一个变量(或表达式)的值赋给变量,等号两边的变量互不影响,任何一个变量值的变化都不会影响到另一个变量。
(2)引用赋值同样也是使用“=”将一个变量的值赋给另一个变量,但是需要在等号右边的变量前面加上一个”&”符号。在使用引用赋值的时候,两个变量将会指向内存中同一存储空间。因此任何一个变量的变化都会引起另外一个变量的变化。

变量的作用域:
(1)局部变量
(2)全局变量
(3)静态变量