首頁 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 Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP行動:現實世界中的示例和應用程序 PHP行動:現實世界中的示例和應用程序 Apr 14, 2025 am 12:19 AM

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP的持久相關性:它還活著嗎? PHP的持久相關性:它還活著嗎? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP與Python:了解差異 PHP與Python:了解差異 Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP和Python:代碼示例和比較 PHP和Python:代碼示例和比較 Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP與其他語言:比較 PHP與其他語言:比較 Apr 13, 2025 am 12:19 AM

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

See all articles