0

0

php基础知识札记

php中文网

php中文网

发布时间:2016-06-13 12:37:39

|

909人浏览过

|

来源于php中文网

原创

php基础知识笔记

includerequire的异同:

相同点:都可以引入其他的php文件。

不同点:include当出现引入文件错误时,只会出现警告,但程序仍然会继续往下执行。而当require出现错误时则会报错,程序终止。

一般来说都是使用include_oncerequire_once,而不使用includerequire。引入文件的语句要放在最前面,这点就类似C语言。

 

立即学习PHP免费学习笔记(深入)”;

php变量是区分大小写的,但是函数名却不区分大小写。且不能以数字开头。例如Abcabc是一样的,如果这样的两个函数共存在一个文件中就会报错。

局部变量和全局变量同名下的情况分析;

看下面的一段代码:

      $a=45;

     function abc(){ //定义函数

       $a+= 10;

}

abc(); //调用函数

echo  ‘$a=’.$a;

新秀B2C商城系统
新秀B2C商城系统

新秀B2C商城系统是一款简洁易用PHP商城系统。可免费下载使用,可用于商业用途,没有时效限制,除版权标识外,所有代码都允许修改。后台功能简介:1、商城设置:基本信息,配送方式,配送范围,支付方式,财务管理;2、商品管理:商品列表,添加商品,商品分类,商品品牌,商品属性;3、订单管理:订单列表,缺货登记;4、用户互动:用户管理,留言管理,评论管理,网站公告,在线客服,用户协议;5、文章管理:文章列表

下载

输出结果是多少呢?结果还是45,为什么呢?在函数体内的是局部变量,和外部变量$a同名,但不是同一个变量,而是两个完全不相干的变量。函数内的变量$a随着函数执行完毕就释放了。输出的仍是外部变量,如果要在函数体内使用外部变量(全局变量)那么就要在内部的同名变量前加上global 声明。其实在编译器看来,声明为global时其实是把外部同名的变量的地址赋给这个局部变量,这时内部变量和外部同名变量是同一地址,所以自然就成了同一变量了。在函数体的形参或没有声明为global的局部变量,那么就是作为局部变量来使用的,作用域就是在函数体内。例如下面的一段代码输出结果是45,而不是55.

$a=45;

     function abc($a){ //定义函数

       $a += 10;

}

abc($a); //调用函数

echo  ‘$a=’.$a;

 

立即学习PHP免费学习笔记(深入)”;

php中一共有三种级别的错误:

第一级错误:notice,最轻的错误,还可以执行

第二级错误:warn ,警告,还可以执行

第三级错误:error ,程序无法执行下去,这个错误是最严重的错误

 

立即学习PHP免费学习笔记(深入)”;

unset函数解说:

(PHP 3, PHP 4 )

unset -- 释放给定的变量,当我们不想使用该变量时就可以释放这个变量。

描述

void unset ( mixedvar [, mixed var [, ...]])

unset()销毁指定的变量。注意在 PHP 3 中,unset() 将返回 TRUE(实际上是整型值 1),而在 PHP 4 中,unset() 不再是一个真正的函数:它现在是一个语句。这样就没有了返回值,试图获取 unset() 的返回值将导致解析错误。

如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用unset() 之前一样的值。即在函数外部该全局变量仍保持原样。如果在函数中unset() 一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用unset() 之前一样的值。即形参是个取地址符的情况。

php有点类似C语言,不支持多态,不允许同名函数的存在,但对于形参更灵活,在调用时可以不写或少写几个形参值。还可以给形参赋默认值。例如 function diyMethod($a,$b=3)就是给形参赋默认值为3 ,php函数默认传值方式是值传递,要想使用引用传递(地址传递),在形参前加上地址符&就可以了。引用传递其实有点相当于变相地将形参所对应的调用该函数的传入参数变成了全局变量。虽然没有global声明。引用传递会改变传入参数的值!但要注意这里的引用并不是C语言的指针.因为指针本身是一个变量,而php的引用其实是变量的一种别名,说白了,就是一个地址可以有多个变量名字。在 PHP 中引用意味着用不同的名字访问同一个变量内容。当用 global $var 声明一个变量时实际上建立了一个到全局变量的引用。

 

立即学习PHP免费学习笔记(深入)”;

php中变量、常量定义方法

1.   定义常量define("CONSTANT", "Hello world."); 
常量只能包含标量数据(booleanintegerfloat string)。 
调用常量时,只需要简单的用名称取得常量的值,而不能加“$”符号,如:echoCONSTANT 
: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE $TRUE 是不同的。 
2.普通变量$a = "hello"; 
3.可变变量(使用两个美元符号($)) 
$$a = "world"; 
两个变量都被定义了: 
$a 的内容是“hello”并且 $hello 的内容是“world” 
因此,可以表述为: 
echo "$a ${$a}";或者 echo "$a $hello";它们都会输出:hello world 
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1] 
4.静态变量 
在函数内部static $a =0; 
注意:声明中用表达式的结果对其赋值会导致解析错误如static $a =3+3;error 
静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用 
5.全局变量 
在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS 数组: 
如:$GLOBALS["b"] = $GLOBALS["a"] +$GLOBALS["b"]; 
在一个函数域内用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用 
global $obj; 
注:对于变量的 static global 定义是以应用的方式实现的 
6.给变量赋值:传地址赋值(简单引用): 
$bar = &$foo; //&符号到将要赋值的变量前 
改动新的变量将影响到原始变量,这种赋值操作更加快速 
注意:只有命名变量才可以传地址赋值 
注意:如果 
$bar = &$a; 
$bar = &$foo; 
改变$bar的值只能改变变量foo的值,而不改变a的值(引用改变了) 
7.PHP超全局变量$GLOBALS 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的名称。从 PHP 3 开始存在 $GLOBALS 数组。 
$_SERVER 变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。 
$_GET 经由 HTTP GET 方法提交至脚本的变量。 
$_POST 经由 HTTP POST 方法提交至脚本的变量。 
$_COOKIE 经由 HTTP Cookies 方法提交至脚本的变量。 
$_FILES 经由 HTTP POST 文件上传而提交至脚本的变量。 
文件上传表单中要有 enctype="multipart/form-data" 
$_ENV 执行环境提交至脚本的变量。 
$_REQUEST :经由 GETPOST COOKIE 机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的variables_order 配置指示来定义。该数组没有直接模拟 PHP4.1.0 的早期版本。参见 import_request_variables() 
注意: PHP 4.3.0 起,$_FILES 中的文件信息不再存在于 $_REQUEST 中。 
$_SESSION :当前注册给脚本会话的变量。 
如何禁用phpinfo(): 
php.ini 
disable_functions = phpinfo() 
重启web服务器。 
php中的常量 
常量只能用define(常量名,常量值); 
常量只能包含标量数据(booleanintegerfloat string)。 
可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $ 符号。如果常量名是动态的,也可以用函数 
constant() 来读取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表。 
: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE $TRUE 是不同的。 
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应"CONSTANT")。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $w3sky[bar] 是错误的(除非事先用 define() bar 定义为一个常量)。如果只想检查是否定义了某常量,用 defined() 函数。 
常量和变量不同: 
* 常量前面没有美元符号($); 
* 常量只能用 define() 函数定义,而不能通过赋值语句; 
* 常量可以不用理会变量范围的规则而在任何地方定义和访问; 
* 常量一旦定义就不能被重新定义或者取消定义; 
* 常量的值只能是标量。 
定义常量 

define("CONSTANT", "Helloworld."); 
echo CONSTANT; // outputs "Helloworld." 
echo Constant; // outputs "Constant"and issues a notice. 
?>

跳水比赛,10个评委打分,去掉一个最高分和一个最低分,然后求剩下的评委的分数总和的平均分为该运动员的得分,试输出给最高分的评委和给最低分的评委以及该运动员的得分。

答案如下:

<?php
	$arr = array("arial"=>12,"ms"=>9.0,"ok"=>7.1,"song"=>5.0,"bold"=>3.8,"know"=>2.7,"wow"=>1.7,"serial"=>7.9,"moder"=>7.6,"froke"=>6.7);
	function  getMinMax($arr,$k=true){ //$k 为 true时输出最小值,为false 则输出最大值,还有平均数
	   $num=$arr["arial"];$sum=0;$s="arial";
	   foreach($arr as $i => $value){
	   		if($k){ 
				if($value<$num){
					$num =$value;$s=$i; 
				}
			}else {
				if($value>$num){
					$num =$value;$s=$i; 
				} 
			}
	   } 
	   $sum = array_sum($arr);
	   return array($sum,$num,$s);
	}
	$newArr=getMinMax($arr,true); 
	$sum=$newArr[0]-$newArr[1]; 
	echo 'the lowest degree people is '.$newArr[2]."<br />";
	unset($newArr);
	$newArr=getMinMax($arr,false); 
	$sum -= $newArr[1];
	echo '<br />the highest degree people is '.$newArr[2];
	echo '<br />the average degree is '.$sum/(count($arr)-2);
?>


相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

46

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

41

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

37

2026.02.28

Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

21

2026.02.27

Golang 高级特性与最佳实践:提升代码艺术
Golang 高级特性与最佳实践:提升代码艺术

本专题深入剖析 Golang 的高级特性与工程级最佳实践,涵盖并发模型、内存管理、接口设计与错误处理策略。通过真实场景与代码对比,引导从“可运行”走向“高质量”,帮助构建高性能、可扩展、易维护的优雅 Go 代码体系。

18

2026.02.27

Golang 测试与调试专题:确保代码可靠性
Golang 测试与调试专题:确保代码可靠性

本专题聚焦 Golang 的测试与调试体系,系统讲解单元测试、表驱动测试、基准测试与覆盖率分析方法,并深入剖析调试工具与常见问题定位思路。通过实践示例,引导建立可验证、可回归的工程习惯,从而持续提升代码可靠性与可维护性。

3

2026.02.27

漫蛙app官网链接入口
漫蛙app官网链接入口

漫蛙App官网提供多条稳定入口,包括 https://manwa.me、https

245

2026.02.27

deepseek在线提问
deepseek在线提问

本合集汇总了DeepSeek在线提问技巧与免登录使用入口,助你快速上手AI对话、写作、分析等功能。阅读专题下面的文章了解更多详细内容。

21

2026.02.27

AO3官网直接进入
AO3官网直接进入

AO3官网最新入口合集,汇总2026年可用官方及镜像链接,助你快速稳定访问Archive of Our Own平台。阅读专题下面的文章了解更多详细内容。

403

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 19.6万人学习

Pandas 教程
Pandas 教程

共15课时 | 1.1万人学习

C# 教程
C# 教程

共94课时 | 10.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号