php教程 php手册 php基础知识笔记

php基础知识笔记

Jun 21, 2016 am 08:48 AM
global nbsp php quot unset

include和require的异同:

 

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

 

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

 

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

 

 

 

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

 

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

 

看下面的一段代码:

 

      $a=45;

 

     function abc(){ //定义函数

 

       $a+= 10;

 

}

 

abc(); //调用函数

 

echo  ‘$a=’.$a;

 

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

 

$a=45;

 

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

 

       $a += 10;

 

}

 

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

 

echo  ‘$a=’.$a;

 

 

 

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

 

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

 

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

 

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

 

 

 

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中变量、常量定义方法

 

1.   定义常量define("CONSTANT", "Hello world."); 

常量只能包含标量数据(boolean,integer,float 和 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 :经由 GET,POST 和 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(常量名,常量值); 

常量只能包含标量数据(boolean,integer,float 和 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 &#39;the lowest degree people is &#39;.$newArr[2]."<br />";  
    unset($newArr);  
    $newArr=getMinMax($arr,false);   
    $sum -= $newArr[1];  
    echo &#39;<br />the highest degree people is &#39;.$newArr[2];  
    echo &#39;<br />the average degree is &#39;.$sum/(count($arr)-2);  
?>  
로그인 후 복사



본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

cakephp4에서 날짜와 시간을 다루기 위해 사용 가능한 FrozenTime 클래스를 활용하겠습니다.

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

파일 업로드 작업을 위해 양식 도우미를 사용할 것입니다. 다음은 파일 업로드의 예입니다.

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP 유효성 검사기 만들기 CakePHP 유효성 검사기 만들기 Sep 10, 2024 pm 05:26 PM

컨트롤러에 다음 두 줄을 추가하면 유효성 검사기를 만들 수 있습니다.

CakePHP 로깅 CakePHP 로깅 Sep 10, 2024 pm 05:26 PM

CakePHP에 로그인하는 것은 매우 쉬운 작업입니다. 한 가지 기능만 사용하면 됩니다. cronjob과 같은 백그라운드 프로세스에 대해 오류, 예외, 사용자 활동, 사용자가 취한 조치를 기록할 수 있습니다. CakePHP에 데이터를 기록하는 것은 쉽습니다. log() 함수는 다음과 같습니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP 서비스 CakePHP 서비스 Sep 10, 2024 pm 05:26 PM

이 장에서는 CakePHP에서 사용할 수 있는 인증 프로세스에 대한 정보를 다룹니다.

See all articles