我的php学习第二十一天之php基础篇

昨日回顾

PHP变量

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

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

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

4)PHP的变量区分大小写

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

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

下划线方式:$get_user_name

骆峰命名方式:$getUserName

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

 

<?php

$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;

}

 

for循环语句

1、语法格式:

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

{

循环执行的程序代码;

}

2、举例说明

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

$sum = 0;

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

{

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

if( $i % 2 == 0 )

{

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

$sum += $i;

}

}

 

赋值传值和引用传址

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指向了“同一个地方、地址”

 

数组的概念

数组是一组数的集合

假设:一个老太太,养了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);

 

<?php

//创建数组

$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 "<pre>";

print_r($arr);

echo "</pre>";

}

?>

 

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

              );

 

4、多维数组

image001

数组的常用函数

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

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

 

函数的概念

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

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

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

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

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

……

 

语法结构

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

{

函数功能的代码;

[return 值];

}

语法结构的说明:

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

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

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

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

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

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

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

 

函数参数

1)值传递(复制)

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

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

function showInfo($name)

{

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

}

2)引用传递

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

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

$str = “周更生”;

showInfo($str);

echo $str;  //现在的$str=“刘晓庆”

function showInfo( &$name )

{

$name = “刘晓庆”;

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

}

 

3)默认参数传递

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

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

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

{

echo “$who 正在 $sport”;

}

//调用函数

showInfo(“周更生”);   //$result = 周更生正在打游戏

showInfo(“刘晓庆”,”洗澡”);    //$result = 刘晓庆正在洗澡

 

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

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

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

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

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

 

$name = "周更生";

showInfo();

//输出$name的值

echo $name;

//定义函数

function showInfo()

{

//声明为全局变量

global $name;

$name = "张立峰";

echo "$name 的年龄是30岁!<br>";

}

 

 

日期时间函数

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");

image003

time()今天距离Unix纪元(197011)

 

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}岁了!";

 

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/497.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚的头像重蔚管理团队
上一篇 2015年12月1日 17:01
下一篇 2015年12月1日 17:48

相关推荐

  • PHP下ajax跨域的解决方案之window.name实例分析详解

    本文实例讲述了PHP下ajax跨域的解决方案之window.name。分享给大家供大家参考,具体如下:原理核心:window对象的name属性是一个很特别的属性,当该window的location变化,然后重新加载,它的name属性可以依然保持…

    2022年6月15日
    0159
  • 重蔚php学习第三十天——php数组

    什么是数组 数组其实就是一组数据的集合,其表现形式是指在内存中一段连续的内存地址。 为什么使用数组 标量数据类型只能存储一个数据,一个数组变量可以存储多个数据。 $name=’zhangsan’; $age=30; 缺点: 定义的…

    2017年10月6日 PHP自学教程
    0317
  • 使用PHP类库PHPqrCode生成二维码(附代码)

    PHPqrCode是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo, 查看地址:http://phpqrcode.sourceforge.net/。 下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码…

    2017年11月22日
    0218
  • PHP与Elasticsearch的集成

    PHP与Elasticsearch的集成随着大数据和数据挖掘的发展,搜索引擎已经成为了我们生活中必不可少的工具。而Elasticsearch就是一个快速、开放、可扩展的搜索和分析引擎,它能够轻松地进行全文检索、数据分析和实时数据…

    2023年5月19日
    01
  • PHP8.0中的图像处理库

    随着数字化时代的到来,图像处理在各行各业中的应用越来越广泛,尤其是随着互联网技术的不断发展,图像在网页设计和移动应用中的重要性也得到了越来越高的认可。而在这个领域中,PHP8.0中新增的图像处理库,为我们…

    2023年5月18日
    01
  • PHP使用curl库发送HTTP请求。

    在Web开发中,发送HTTP请求是一项非常重要的任务。无论是通过API获取数据,还是与第三方服务进行通信,都需要使用HTTP请求来进行数据传输。在PHP中,可以使用curl库来发送HTTP请求,本文就来详细介绍curl库的使用方…

    2023年5月23日
    01
  • PHP图像处理技术的图像处理基本介绍

    所谓的PHP图像处理技术,就是通过php的函数进行绘制图像,然后可以输出到浏览器,也可以保存到本地              该绘图技术,需要开启php的一个扩展:GD2,该扩展提供了很多绘制图像的方法        PHP的图像处理技…

    2018年9月1日
    0254
  • PHP中如何进行Kubernetes技术的应用?

    随着云计算和容器化技术的飞速发展,Kubernetes已成为当今最主流的云原生应用程序管理平台。在Kubernetes的世界里,PHP这样的Web编程语言也能够轻松地进行应用。本文将介绍如何在PHP应用中使用Kubernetes技术,让你…

    2023年5月17日
    04

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息