我的php学习第二十一天——php变量,PHP的数据类型

2022-10-11 21:35:38 200 0
魁首哥

PHP 变量

1)不需要提前定义,使用时直接赋一个值即可。

2)PHP的变量的命名规则,跟JS一样,允许的字符有:大小写英文字母、0-9、_

3)PHP的变量必须以美元符号$开头;例如:$name=“周更生”;

4)PHP的变量区分大小写

5)PHP的关键字和函数名,不分区大小写,建议一律用小写;

6)PHP对于多个单词构成的变量名

下划线方式:$get_user_name

骆峰命名方式:$getUserName

7)同一变量,多次定义,后面的变量会覆盖前面的同名变量

$name; //变量定义了,但没有赋值

var_dump($name); //返回一个NULL

?>

PHP 的数据类型

1)基本数据类型(标量数据类型): 整型(int)、浮点数(float)、布尔型(boolean)、字符型(string)

2)复合数据类型:对象(obj)、数组(array)

PHP中的对象,只有自定义对象,没有所谓的“内置对象”。

面向对象编程,MVC的架构。

3)特殊数据类型:资源型、NULL

资源型:主要访问或操作“外部”的数据或文件时,将返回一个“ 资源型”的标识

如:连接MySQL数据库时,会返回一个“资源”标识符,说明数据库已经连通。

只有数据库连通以后,才能做“后续工作”:选择数据库、设置字符集、增、删、改、查。

NULL:一个变量定义了,但没有赋值。如果你使用“unset()”删除了变量的值,则同样返回NULL

$school = NULL;

unset($name);

PHP 常量

常量:就是一个永远不变的量,就叫“常量”。比如:连接数据库的“主机名”、“用户名”、“密码”、ICP备案号

第一步:定义常量

格式: define (name,value);

举例:define(“DB_HOST”, “192.168.3.100”);

define(“WEB_ICP”,“京1102342312312”)

define(“WEB_NAME”,“南宁有限公司公司”)

define(“WEB_ADDRESS”,“南宁市 青秀区 青秀万达”)

第二步:判断常量

格式:defined(name)

if(defined(“DB_HOST”))

{

echo “MySQL的主机IP 地址 :”.DB_HOST;

}

2.for循环语句

1 、语法格式:

for(变量初始化;条件判断表达式;变量更新)

{

循环执行的程序代码;

}

2 、举例说明

//输出1-100间,所有的偶数,的和

$sum = 0;

for($i=1;$i<=100;$i++)

{

//找出1-100间所有的偶数

if( $i % 2 == 0 )

{

//这里出来的数,都是偶数

$sum += $i;

}

}

3.赋值传值和引用传址

1 、赋值传值

所谓的“赋值传值”,就是将一个变量的值,“拷贝”一份传给另一个变量。

那么,这两个变量没有任何联系,是相互独立的。

在PHP中,默认的传值方式就是“赋值传值”,比如:基本数据类型、数组、NULL

$a = 100;

$b = $a; // 将变量$a的值,传给了变量$b

$b = 200; // 对变量$b重新赋值

echo $a; //$a = 100 ,变量$a的值并没有改变

2 、引用传址

所谓的“引用传址”,就是将一个变量的“地址”,“拷贝”一份传给另一个变量。

因此,这两个变量指向的是同一个“地址”,或者是同一个“地方”,相当于一个人有两个名字:大名、小名。

“引用传址”中两个变量,只要有一个变量的值修改了,则另一个变量的值也跟着变。

这两个变量是有联系的,不是独立的。

在PHP 中,引用传址的数据类型是:资源、对象。

注意:在PHP中,任何数据类型都可以“引用传址”。通过一个“&”来“引用”变量。

//引用传址

$a = 100; //定义变量,并赋值

$b = & $a; // 用&号将变量$a的“地址”,复制一份,传给了变量$a

$b = 200; //对$b重新赋值

echo $a; // $a = 200,$a和$b指向了“同一个地方、地址”

4.数组的概念

数组是一组数的集合

假设:一个老太太,养了50000只鸡,鸡一重量分别是:1.5斤、2斤、2.5斤、3.0斤、50斤,……,求所有鸡的平均重量?

$hen1 = 1.5;

$hen2 = 2;

$hen3 = 2.5;

$hen4 = 3;

$hen5 = 50;

$sum = $hen1+$hen2+$hen3+$hen4+$hen5;

$avg = $sum/5;

//用数组来实现

$arr = array(1.5,2,3,4,5,3.5,6,56,54,34,34,32);

$sum = array_sum($arr);

$count = count($arr);

$avg = $sum/$count

2 、数组分类

1)枚举数组(数字索引数组):下标是非负整数。$arr[0]=100

2)关联数组(字符下标):下标是字符串。$arr[“name”]=“张立峰”

3)混合数组:即有字符下标,也有数字下标。$arr[“contact”][0] = “13011057863”

4)多维数组:数组的元素,还是一个数组。

3 、数组的创建

1)使用[ ]符号来创建数组

$arr[0] = 0; //JS中创建数组 var arr = [1,2,3,4];

//如果[]中没有指定下标,则创建一个最大数值下标+1的元素

$arr[] = 1; //JS中的下标必须有值,不能为空

$arr[10]= 10;

$arr[] = 11; //下标为11

$arr[“name”]=“张三”;

$arr[] = 100; //下标为12

//使用print_r()直接可以打印输出所有的数组元素

print_r($arr);

//创建数组

$arr[] = 0;

$arr[] = 1;

$arr[] = 2;

$arr[“name”] = “张三”;

$arr[“sex”] = true;

$arr[“age”] = 30;

$arr[99] = 99;

$arr[] = “北京大学”;

//通过print_r()测试数组

dump($arr);

//定义函数

function dump($arr)

{

echo “

”; 

print_r($arr);

echo “

”;

}

?>

2 )使用 array() 函数来创建

格式一:$arr = array(value1,value2,value3,value4, ……);

举例:$arr = array(34,34,65,67,78,”abc”,true,NULL);

格式二:$arr=array(key=>value,key=>value, ……);

说明:

Key就是指下标,可以是字符下标,也可以是数字下标;

Value就是数组元素的值,可以是任何类型;

=>叫“重载下标”符号,重新指定一个下标;

举例:

$arr = array(

“name”=>” 张三”,

“sex”=> “男”

“isMarried”=>true,

10=>100, // 数字下标从10 开始

200,300 //200 的下标为11 ,300 的下标为12

);

5.数组的常用函数

print_r()

含义:打印变量的信息,如果是基本数据类型的变量,直接输出值,如果是数组,则以一定的格式来输出

格式:bool print_r($var)

返回值:布尔值

unset()

含义:删除一个数组元素、一个变量、一个对象的属性。

格式:unset($var)

注意:如果删除一个数组元素,则数组还在下标依然保留(跟JS一样delete)

如果使用unset删除一个数组,则数组中的所有数据消失,并且数组的索引会重建

foreach()

含义:遍历循环数组,只能应用于数组。

格式:

foreach($arr as [$key=>]$value)

{

echo $value;

echo $arr[$key];

}

注意:$key 即可以是数字,也可以是字符。

count()

含义:统计数组元素的个数,默认情况下只统计一维数组。

格式:int count($arr[,mode])

参数:mode为可选,如果设为1,则统计多维数组

array_reverse() 反转数组中的元素

array_shift():删除数组中的第一个元素,且长度减1

array_pop():删除数组中的最后一个元素,且长度减1

array_unshift():在数组的开头增加一个元素,长度加1

array_push():在数组的末尾增加一个元素,长度加1

说明:上述四个对数组操作的函数,返回值是“删除或增加”的那一个元素的值。

6.

7.函数的概念

函数就是将一段常用的代码(封装)进行命名。

假设:我们求以下N个数组中的最大值和最小值

$arr1 = array(1,2,3,4);

$arr2 = array(2,3,2,1);

$arr3 = array(5,6,4,2);

……

8.语法结构

function functionName([参形,参形2,参形3,……])

{

函数功能的代码;

[return 值];

}

语法结构的说明:

1)function是关键字,在PHP中,不区分大小写;

2)functionName是函数的名称,命名规则跟变量一样,但前面不加“$”符号;

3)定义函数时的参数叫“形式参数”,调用函数时的参数叫“实际参数”

4)函数可以没有参数,但小括号不能省略;

5)函数中,可以使用return语句向调用者,返回一个值;return语句执行后,会立即结束函数的运行,因此return语句一般放在定义函数的最后;

6)函数定义后,必须在某个地方调用;只定义函数,函数是不会执行的,只有调用函数才会执行;

7)函数不能存在同名函数(不支持函数的重载),但在JS中可以;

9.函数参数

1 )值传递 ( 复制 )

默认参数传递,是将一个变量的值, 复制 一份传递给函数了。

showInfo(“周更生”); //调用函数

function showInfo($name)

{

echo “$name 的年龄是30岁”;

}

2 )引用传递

引用参数传递,是将一个变量的“地址”,传递给函数了。可以在函数中,直接修改变量的值。修改完后,不管是函数内,还是在函数外,这个变量都会发生改变。

在定义函数时,在参数前加一个“&”号,就是引用外部的变量地址。

3 )默认参数传递

在定义函数时,可以指定默认的参数(给参数赋一个默认的值)。

默认参数,必须放在普通参数的右边。

function showInfo($who,$sport=“打游戏”)

{

echo “$who 正在 $sport”;

}

//调用函数

showInfo(“张三”); //$result = 张三正在打游戏

showInfo(“李四”,”上网”); //$result = 李四正在上网

10.函数变量的作用域: 全局变量 和局部变量

JS中在函数外定义的变量叫“全局变量”,“全局变量”可以在函数内使用。

JS中的局部变量只能在函数内使用。

在PHP 中,在函数外定义的变量,在函数内不能访问;当然,函数内的变量,在函数外也不能访问。

在函数中,使用关键字 global 来声明为“全局变量”,这样后,在函数内外都能访问。

$name = “张三”;

showInfo();

//输出$name的值

echo $name;

//定义函数

function showInfo()

{

//声明为全局变量

global $name;

$name = “张三”;

echo “$name 的年龄是30岁!
”;

}

11.日期时间函数

date() 函数

在PHP中,输出日期时间的相关信息,只需要使用date( )函数。

格式:string date(string format[,int timestamp])

参数:

format:是指输出的日期和时间的格式字符,比如:date(“Y-m-d H:i:s”)

timestamp:是可选项。如果省略,以当前时间为准(1970年1月1日到现在的秒数),也可以自己定义一个timestamp。

举例:

echo date(“Y年m月d日 H:i:s z l”);

time() 今天距离 Unix 纪元 (1970 1 1 )

mktime() 根据指定的日期时间信息,得到距离 Unix 纪元过去了多少秒

格式:int mktime([hour][,minutes][,seconds][,month][,day][,year])

说明:

参数的顺序,必须是“时分秒月日年”

参数可以从右向左省略,省略的部分用当前时间的对应部分来代替。

返回值:是一个整数,距离Unix纪元过去了多少秒

举例:mktime(0,0,0,10,20,1980)

//计算:张三今天多大了?

//出生日期:1980-10-20

//(1)先求出今天距离Unix纪元过去了多少秒

$today = time();

//(2)出生日期距离Unix纪元过去了多少秒

$yestoday = mktime(0,0,0,10,20,1980);

//(3)求两个时间的差

$result = ceil(($today – $yestoday)/(60*60*24*365));

echo “张三今年{$result}岁了!”;

收藏
分享
海报
0 条评论
200
上一篇::纵观PHP这十年发展,兄弟连倒闭也不能阻止它正在强大 下一篇:PHP的一些命名原则汇总!

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码