php基础知识笔记
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; } } } $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); ?>

PhpSSsionsTrackUserDataacrossmultiplePagerequestSuseUniquidStoredinacookie.here'ShoWtomanAgeThemEffectely: 1) startAnSessionWithSession_Start () danStoRedatain $ _Session.2)

Dalam PHP, iterating melalui data sesi dapat dicapai melalui langkah -langkah berikut: 1. Mulakan sesi menggunakan session_start (). 2. ITERATE melalui gelung foreach melalui semua pasangan nilai utama dalam array $ _Session. 3. Apabila memproses struktur data kompleks, gunakan fungsi is_array () atau is_object () dan gunakan print_r () untuk mengeluarkan maklumat terperinci. 4. Apabila mengoptimumkan traversal, paging boleh digunakan untuk mengelakkan memproses sejumlah besar data pada satu masa. Ini akan membantu anda mengurus dan menggunakan data sesi PHP dengan lebih cekap dalam projek sebenar anda.

Sesi ini menyedari pengesahan pengguna melalui mekanisme pengurusan negara pelayan. 1) Penciptaan sesi dan penjanaan ID unik, 2) IDS diluluskan melalui kuki, 3) kedai pelayan dan mengakses data sesi melalui ID, 4) Pengesahan pengguna dan pengurusan status direalisasikan, meningkatkan keselamatan aplikasi dan pengalaman pengguna.

TOSTOREAUSER'SNAMEINAPHPSESSION, startTheSessionWithSsion_Start (), thenassignthenameto $ _Session ['username']

Sebab -sebab kegagalan phpsession termasuk kesilapan konfigurasi, isu cookie, dan tamat tempoh sesi. 1. Ralat Konfigurasi: Semak dan tetapkan session.save_path yang betul. Masalah 2.Cookie: Pastikan kuki ditetapkan dengan betul. 3.Session Expires: Laraskan Nilai Sesi.GC_MAXLifetime untuk melanjutkan masa sesi.

Kaedah untuk masalah sesi debug dalam PHP termasuk: 1. Periksa sama ada sesi dimulakan dengan betul; 2. Sahkan penghantaran ID sesi; 3. Semak penyimpanan dan bacaan data sesi; 4. Semak konfigurasi pelayan. Dengan mengeluarkan ID dan data sesi, melihat kandungan fail sesi, dan lain-lain, anda boleh mendiagnosis dan menyelesaikan masalah yang berkaitan dengan sesi.

Pelbagai panggilan ke session_start () akan menghasilkan mesej amaran dan kemungkinan penggantian data. 1) PHP akan mengeluarkan amaran, menyebabkan sesi telah dimulakan. 2) Ia boleh menyebabkan penggantian data sesi yang tidak dijangka. 3) Gunakan session_status () untuk memeriksa status sesi untuk mengelakkan panggilan berulang.

Mengkonfigurasi kitaran hayat sesi dalam PHP boleh dicapai dengan menetapkan sesi.gc_maxlifetime dan session.cookie_lifetime. 1) session.gc_maxlifetime mengawal masa survival data sesi pelayan, 2) session.cookie_lifetime mengawal kitaran hayat kuki klien. Apabila ditetapkan ke 0, kuki tamat apabila penyemak imbas ditutup.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma
