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

《我的php学习第二十一天——php变量,PHP的数据类型》要点:
本文介绍了我的php学习第二十一天——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;

}

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,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,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,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,4);

$arr2 = array(2,1);

$arr3 = array(5,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岁!<br>";

}

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

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

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

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

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

说明:

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

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

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

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

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

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

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

$today = time();

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

$yestoday = mktime(0,1980);

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

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

echo "张三本年{$result}岁了!";

《我的php学习第二十一天——php变量,PHP的数据类型》是否对您有启发,欢迎查看更多与《我的php学习第二十一天——php变量,PHP的数据类型》相关教程,学精学透。编程之家 jb51.cc为您提供精彩教程。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Online Tours & Travels Management System pay.php sql injectionLine 16 of pay.php invokes a SQL query built using unvalidated input. This call could allow an attacker to modify the statement’s meaning or to execute arbitrary SQL commands.SQL
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在windwos系统搭建typecho博客+cpolar内网穿透工具将博客发布到公共网络环境,实现远程也可以访问和操作。_windows搭建typecho
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代语法,让php更加的优雅的与html生活在一起 -->请放心, 最终生成的,或者说用户最终看到的,仍然是一个html文档, php代码中的内容不会被泄漏的。-- 将php与html代码混编的时候,大括号很容易造成配对错误,最好杜绝它 -->php标签内部代码由php.exe解释, php标签之外的代码原样输出,仍由web服务器解析。-- 所以php的流程控制语句, 都提供了替代语法,用冒号代替大括号 -->php echo '百变鹏仔'?_利用php将静态页面修改为动态页面
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔记博文内容涉及 Linux network namespace 认知以及彼此通信Demo,实际中的应用理解不足小伙伴帮忙指正不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树。_linux network namespace 多端通信 模式认知
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了一个逻辑二层(L2)网络,该网络封装在跨 Kubernetes 集群节点的现有三层(L3)网络拓扑上。使用此模型,可以为容器提供一个隔离的 L2 网络,而无需分发路由。封装网络带来了少量的处理开销以及由于覆盖封装生成 IP header 造成的 IP 包大小增加。封装信息由 Kubernetes worker 之间的 UDP 端口分发,交换如何访问 MAC 地址的网络控制平面信息。此类网络模型中常用的封装是 VXLAN、Internet 协议安全性 (IPSec) 和 IP-in-IP。_k8s网络组件对比
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安全时,我们正在讨论的是保护我们的在线空间,这是我们所有人的共享责任。网络安全涉及保护我们的信息,防止被未经授权的人访问、披露、破坏或修改。
文章浏览阅读1.3w次,点赞3次,收藏7次。尽管您可以通过 ping 命令解析出网站的 IP 地址,但是可能在浏览器中访问时仍然遇到问题,这可能是因为浏览器使用的 DNS 解析结果不同于 ping 命令使用的解析结果。可能是因为您的网络或设备上设置了防火墙,阻止了对特定网站的访问。有些国家或组织可能会对特定的域名进行屏蔽,从而阻止访问相关网站。如果您的网络使用代理服务器进行访问控制,可能会由于代理服务器的配置问题导致无法访问某些网站。即使您的网络和设备一切正常,目标网站本身可能也存在问题,例如服务器故障、维护或过载,导致无法访问。_能ping通打不开网页
文章浏览阅读839次,点赞22次,收藏19次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。
文章浏览阅读2.1k次,点赞31次,收藏22次。基于微信小程序奶茶点餐外卖系统设计与实现(PHP后台+Mysql)可行性分析毕设源代码毕业设计,数据安全和系统稳定性以及团队能力和资源配备方面都具备较好的条件。因此,该项目的可行性较高。:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;微信小程序作为一种快捷、方便的移动应用形式,成为很多用户点餐外卖的首选。项目的界面和功能都可以定制,包安装运行!项目配有对应开发文档、开题报告、任务书、PPT、论文模版等。
文章浏览阅读1.8k次,点赞52次,收藏38次。本文主要通过对系统的前台系统和后台管理系统进行了功能性需求分析,对系统的安全性和可扩展性进行了非功能性需求分析。在详细的需求分析的基础上,根据系统的功能设计确定了数据库结构,实现完整的代码编写。Lucky+Baby母婴用品网站使用 Dreamweaver、HBuilder代码编辑器、Apache服务器等开发工具,完成了系统的主要模块的页面设计和功能实现。本文展示了首页页面的实现效果图,并通过代码和页面介绍了用户注册功能、商品搜索功能、生成订单和查看我的订单功能、在线付款功能功能的实现过程。
文章浏览阅读1.5k次,点赞45次,收藏40次。本设计主要实现集人性化、高效率、便捷等优点于一身的人事信息管理系统,完成首页、系统用户、通知公告、部门信息、员工薪资、考勤签到、员工请假、招聘信息、应聘信息等功能模块。
文章浏览阅读1k次。该错误通常出现在数据库读取结果集数据时,比如当我们写好SQL语句从数据库读取数据时,本身应该返回结果集,再给结果集中读取数据。解决思路:这种错误一般是因为echo后面输出了一个数组导致的,或者是数组作为字符串进行拼接运算时导致的。该错误直译为:警告:mysqli_fetch_assoc函数期望参数1是mysqli的结果集,但是给了一个布尔值。这种错误是PHP解析器在解析时遇到了语法错误,直译为:解析错误:语法错误,意料之外的...该错误直译为:提示:未定义的索引:username。_array to string conversion in
文章浏览阅读2.7w次。解决http请求报错context deadline exceeded (Client.Timeout exceeded while awaiting headers)_context deadline exceeded (client.timeout exceeded while awaiting headers)
文章浏览阅读1.3k次,点赞26次,收藏24次。复杂网络是一种由大量相互连接的元素(节点或顶点)组成的网络结构,这些连接通常是非常复杂和动态的。这些网络可以在各种领域中发现,包括社交网络、生物学系统、信息技术和交通系统等。_代理建模
文章浏览阅读2.6k次,点赞76次,收藏71次。epoll详解,事件模型,ET/LT模式,并通过三个示例进行代码实现。
文章浏览阅读3.3k次。罗拉ROLA-IP是一家来自纽约的代理IP提供商,由李嘉诚先生投资建设,韩国人工智能、自动驾驶、虚拟现实方面的领军企业World IT Show投资入股,由美国纽约大学IT管理教授团队研究开发,进入中国市场6年多,全世界设有多个分子公司。接下来,我们要检查代理和防火墙的设置,因为在绝大多数情况下,它们是导致这个错误的原因,尤其是当用户使用免费代理时。对网站的访问受阻实际上是一个非常常见的错误,它既可能是由于物理原因(硬件问题)造成的,也可能是由于软件错误引起的。检查代理设置,并确保其正确配置。_无法访问此网站,检查代理服务器和防火墙
文章浏览阅读1.1k次,点赞14次,收藏20次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。_php洗车服务预约管理系统php源码
文章浏览阅读1.1k次。桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。同时,对于桶中元素的排序,选择何种比较排序算法对于性能的影响至关重要。
文章浏览阅读936次,点赞22次,收藏17次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。
文章浏览阅读822次,点赞15次,收藏14次。在整个设计过程中,要确定可能的具体解决方案,以实现每一个小的最终目标,对于每一个小目标,我们首先必须了解一些相关的需求分析信息。除了以上作品下面是2023-2024年最新100套计算机专业原创的毕业设计源码+数据库,是近期作品,如果你的题目刚好在下面可以文末领取java源码参考。springboot基于springboot的在线考试系统。springboot基于springboot的商城购物系统。springboot基于微信小程序的智慧校园设计与实现。springboot基于用户的协同过滤算法的话题推荐。