menu
more_vert

php 入门笔记

作者:dayu

(4) 在单引号中可以使用双引号,在双引号中可以使用单引号
(5) 在单引号中不能再使用单引号,在双引号中不能再使用双引号
(6) 在单引号和双引号中可以使用转义字符 \,可以将没有意义的字符变得有意义,
也可以将有意义的字符变得没意义


5)PHP变量的其他数据类型

$arr = array(1,2,3,4,5);
$arr2=array(
"foo"=>"bar",12=>true
);
class Person{
var $name;
var $age;
var $sex;
function say(){
}
function eat(){
}
$person = new Person();
}
$file = fopen(‘text.txt‘,"r");
echo fread($file);
fclose($file);

6)伪类型
并不是php语言中的基本数据类型,只是因为php是弱类型语言,所以在一些函数中一个参数可以
接收多种类型的数据,还可以接收别的函数作为回调函数使用,为了确保代码的易读性介绍一些伪类型的使用
mixed :说明一个参数可以接受多种不同的类型
number:说明一个参数可以是integer 或者 float
callback:接受一个用户自定义函数作为参数


7、 php的数据类型之间的转换和检测

getType() 获取变量类型

1)强制转换

(1)setType(变量,类型); 将什么变量设置为什么类型 ----是将原变量给转换了
(2)在变量使用时,前面加上类型符号 ----- 是在赋值时给新变量一个新类型,原变量类型不变
$int = "100000";
$d = (int)$int;
echo getType($d);

(3)intval(),floatval(),strval() 也是将新变量转换了,原变量不变


8、 常量的声明和使用

一旦声明,这个常量的值不会被改变

初始化静态段 ----里面存的数据不灵活

1)常量是使用函数 define()声明的
define("ROOT",10);
2)如果常量没有声明,则常量名在使用时,会自动转为字符串(效率很低)
error_reporting(E_ALL& ~E_NOTICE);
$root = "localhost";

echo ROOT;

输出字符串“ROOT”
3)常量名称不要加 $符号

4)常量名称默认区分大小写 习惯上常量的名称要全部大写

5)可以使用define()第三个参数决定是否让这个常量名称区分大小写 true false

变量都区分大小写,常量可以自定义区分大小写,其他php语法都不区分大小写

6)常量的值只支持标量数据类型

7)常量不能使用 unset()释放

8) 可以使用defined()判断 一个常量是否存在

if(defined("ROOT")){
echo ROOT+10;
}else{
echo "1111111";
}


可以用函数constant()来读取常量的值
用get_defined_constants()可以获得所有已定义的常量列表

9)常量有魔术常量和系统常量

魔术常量 值不像PI 一样,它的值在环境发生变化时会改变,如_LINE_文件中的当前行号

几个php的魔术常量

_LINE 文件中的当前行号
_FILE 文件的完整路径和文件名
_DIR 文件所在的目录
_FUNCTION 函数名称
_CLASS 类的名称
_NAMESPACE 当前命名空间的名称

9、PHP的运算符

运算元 运算符 运算元
1 + 1

一元运算符 +1 -1 ++ -- ==

二元运算符 + - * / % > < = == ===

三元运算符 1?2:3

$a = 10

算术运算符号 + - * / % ++ --

赋值运算符号 = += -= *= /= %=

比较运算符 > < == >= <= ===?= ?==

逻辑运算符 && || !

位运算符号 & | ~ >> <<

其他运算符号 ?: @ =>

1)算数运算符号

除数不能为零

在其它语言中(不是在PHP中),+号除了有 加法的作用, 还有连接字符串的功能

$a = 10;
$b = 5;
echo $a/$b;
echo "<br>";
echo 1+1+"4+5+6"+1+1; //会将字符串自动转换为相应的数据类型,所以会转为4
echo "<br>";
echo 1+1+"4e+5+6"+1+1; //会将字符串自动转换为相应的数据类型,所以会转为4乘以10的5次方

% 余数的结果,正负号取决于前面的数,跟后面无关

1)让一个数不超过一个值(计算范围)
2)求什么被整除
if($num%4 == 0){}

13.45%2.23456 其实对小数求模没有意义,php中会割舍为整数然后求模

++ 自增
$a = 5;

$a++ 先用再加

++$a 先加再用


2) 赋值运算符

= += -= *= /= %= .=(将变量与所赋的值相连后的结果赋给该变量)

“.” 可以直接连变量或者字符串,但是不能直接连整数等

单引号不解析变量,双引号可以解析变量

echo "这个变量的值:".$a."<br>";
echo "<br>";
echo "这个变量的值:$a<br>";

3)比较运算符

(1)比较后的结果是一个 boolean值,用在if和while等语句中

4>3 true

== 比较的是内容
====全等,不仅内容要相等,而且两边类型要相等
4)逻辑运算符

就是将比较运算符连接在一起

&& || !

逻辑运算符的特性:

特性: 短路

$a =1;

&& and $a > 5 && $a < 100 明明两边都要执行,前边如果不成立后面也就不去执行了

|| or
$a = 8;

$a > 5 || $a < 100

boolean 型不参与++运算

赋值运算符优先级最低

$a=0;
$b=0;

if($a = 3 && $b = 3){

$a++;
$b++;
}
echo $a.",".$b; //1,4

$a=0;
$b=0;

if($a = 3 || $b = 3){

$a++;
$b++;
}
echo $a.",".$b; //1,1

5)php中的位运算符


& 按位与 | 按位或 ^ 按位异或 ~ 按位非 << 左移 >> 右移

6)其他运算符

运算元 ? 运算元 :运算元

条件 ? 语句 :语句

条件 ? 表达式 : 表达式

一 ? 二 : 三

如果"一"的条件成立,则执行 "二",否则执行 "三"

7)php运算符的优先级和表达式

10、 PHP流程控制

顺序结构
分支结构
{
1、单一条件分支结构 (if)
2、双向条件分支结构 (if 加上 else从句)
3、多向条件分支结构 (if else if子句,switch语句)

在多路分支(if else if)中,只能进入一个 ******

switch-case语句语法

1、switch()括号中,必须是一个变量
2、在switch(){}中放的是多个case 语句,case空格,后面放的是值,
值的后面使用一个 冒号:

switch (变量){
case 值1:
语句;
语句;
语句;
语句;
语句;
break;
case 值2:
语句;
语句;
语句;
语句;
语句;
[break;] (可选)
case 值3:
语句;
语句;
语句;
语句;
语句;
break;
default:语句;
break;

}

switch case 需要注意的一些细节:

1、如果在case中语句过多,就需要将多个语句做成一个函数之类
2、switch(变量) 变量的类型 只能允许两种类型: 整型和字符串
3、break 是退出switch结构使用的,如果需要同时匹配多个值时,可以使用多个case而不加break;

else if 判断范围时使用
switch case 使用于单个值匹配进行分支

4、巢状条件分支结构

指的是在语句中可以再嵌套几层

}


循环结构


while语句

do...while 循环

for 语句

goto 语句

特殊的流程控制语句


循环必须有退出循环的条件,

while 循环不是做计数用的,适合条件循环

for 循环 计数用

do-while 程序会先执行 do语句体中的语句,然后再检查表达式的值,如果符合条件表达式,就再
进行 do 语句体中的语句,直到条件不符合为止

while(条件表达式){
循环体
}

//第一步先执行 表达式, 表达式为true时, 才执行循环体

do{
循环体
}while(条件表达式);

//第一步 先执行循环体,再判断条件表达式,成立则执行下一个循环体


循环结构for语句 (适合用计数做循环)


for( 表达式一;表达式二 ; 表达式三 ){

echo "循环体<br>";
}

第一部分,先执行表达式一,
第二部分,再执行表达式二,
第三部分,再执行 循环体,
第四部分,再执行 表达式三
第五部分,再执行表达式二

注意,表达式一,只被执行一次
表达式一:初始化条件 $i = 0;
表达式二:条件表达式,成立则执行循环体
表达式三:是一个自增条件 $i++,

三部分都能提出来,但是for()中的两个分号不能省略


九九乘法表四种打印方法

for($i=1;$i<=9;$i++){
for($j = 1 ;$j<=$i;$j++){
echo "$j X $i = ".($i*$j)."&nbsp;&nbsp;";
}
echo "<br>";
}
echo "<br>";
for($i=1;$i<=9;$i++){
for($j = $i ;$j>=1;$j--){
echo "$j X $i = ".($i*$j)."&nbsp;&nbsp;";
}
echo "<br>";
}
echo "<br>";

for($i=9;$i>=1;$i--){
for($j = 1 ;$j<=$i;$j++){
echo "$j X $i = ".($i*$j)."&nbsp;&nbsp;";
}
echo "<br>";
}
echo "<br>";
for($i=9;$i>=1;$i--){
for($j = $i ;$j>=1;$j--){
echo "$j X $i = ".($i*$j)."&nbsp;&nbsp;";
}
echo "<br>";
}


11、特殊流程控制语句

1)break (break后面加数字可以退出多层循环)
跳出循环 break是一个指令,break1是退出一层循环,break2 是退出两层循环 break3是退出三层循环


2)continue

中断本次循环,继续下一次循环

3)exit

当前的脚本中只要执行到exit语句,而不管它在哪个结构中都会直接退出当前脚本。exit是一个函数
,可以带参数输出一条消息,并退出当前脚本。它的别名是die()

while($i < 100){
if($i %3 == 0){

continue;
echo "{$i}aaaaaaaaaaaaaaaaaaaaaaaaa<br>}";
}
$i++;
}

这是一个死循环

12、流程控制语句goto

跳转
echo "11111111111<br>";
goto nh; (跳转到标记处)
echo "2222222222222<br>";
echo "333333333333333<br>";
nh: (标记)
echo "44444444444444444<br>";

循环

$x = false;
$i=0;
xx:

echo "{$i}11111<br>";

if($i >5)
goto nz;

$i++;

goto xx;

goto的得与失

goto 语句经常带来错误或隐患。它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句。

13、PHP函数

函数:是一段完成指定任务的已命名代码块。函数可以遵照给它的一组值或参数完成特定的任务,并且可能返回
一个值。在PHP中有两种函数:自定义函数与系统函数。

函数的优越性:

控制程序设计的复杂性
提高软件的可靠性
提高软件的开发效率
提高软件的可维护性
提高程序的重用性

让表格隔行换色代码
echo ‘<table border="1" width="800" align="center">‘;
echo ‘<caption><h1>表格</h1></caption>‘;
for($i = 0;$i<10;$i++){
$bg = ($i%2==0)?‘#cccccc‘:"";
echo ‘<tr bgcolor="‘.$bg.‘">‘;
for($j=0;$j<10;$j++){
echo ‘<td>‘.$i.‘</td>‘;
}
echo "</tr>";
}
echo ‘</table>‘;


函数的定义和应用、函数的语法格式

自定义函数的返回值

输出错误

error_reporting(0);
error_reporting(E_All);

file_put_contents("demo.html",table("成绩表",50,5,3,‘green‘,10,400,‘right‘)); 新建demo.html文件,将调用的函数生成的html放入
demo.html文件中

函数遇到return ,函数return下面的代码都不会执行了

return除了可以终止函数,还可以返回值

1)函数名定义时必须要有意义,建议驼峰式命名
2)重复的函数名不能声明 ,不能跟自定义的函数重名,也不可以和系统函数重名

自定义函数语法格式:

function 函数名称 (参数1,参数2,参数3){

程序内容叙述(函数体);
return 返回值 //如需函数有返回值时使用
}
函数的使用:

函数名称([参数1,参数2,参数3。。。。])
了解一个函数: 1)了解函数功能
2)了解参数
3)了解返回值

function_exists()判断函数是否存在


3)PHP局部变量

PHP变量的范围


function demo(){
$age = 30;
echo "你吃饭了没<br>";
}
echo demo();

函数调用了才执行
函数内部声明的变量,只有调用时才执行,调用结束后,函数中声明的变量会被释放
函数内部声明的变量,只能在函数内部调用,这就是——————局部变量

函数的参数,就是一个局部变量,声明成形参的,可以在调用时,给值,传值

4)PHP全局变量

全局变量:在函数外部声明的变量,可以在每个函数中使用。(顺序)

在函数中局部变量会覆盖全局变量的能见度,因此在函数中无法直接调用使用全局变量

函数中若要使用全局变量时,必须要利用global 关键字定义目标变量,以告诉函数主体

此变量为全局。

在函数内部如果需要使用函数外部的变量,需要使用global关键字,将外部变量引入

只要将全局变量声明在调用之前,在调函数时就能找到

在外面声明的变量也好常量也好,如果没有unset()释放,都是脚本结束的时候释放。

而函数内部的局部变量,在函数调用结束时就会释放

九个全局数组:$_POST[‘a‘]=100; $_GET[‘b‘]=300;

全局数组中的变量,默认都是全局的,不需要用global去引入了


5)PHP静态变量


内存: 栈内存、初始化静态段

局部变量、全局变量声明后在栈内存中

static $c 这样的变量存在初始化静态段中

静态变量:

1、在函数中声明的静态变量只在第一次调用时声明
2、第二次以后,一看是静态变量,就先到静态区中,看一下有没有这个变量,如果有就使用,
而不去再声明

3、静态变量,在同一个函数多次调用中共享

静态变量一般都是在函数内部声明

6)
function demo(){
static $a=0;
$a++;
echo $a."<br>";
}
function test(){
static $a=0;
$a++;

}
demo();
demo();
test();
test();
test();
test();
demo();
demo();

输出结果为 1、2、3、4、5

7)PHP常规参数的函数

函数三要素: 1、函数的功能描述
2、函数的参数
3、函数的返回值

常规参数的函数格式说明:所谓常规参数的函数,就是实参和形参应该个数相等、类型一致

伪类型参数
number add(number $a ,number $b)

mixed funName(mixed $a)

8)引用参数的函数

引用变量的特点:$a = 10; $b = &$a; $a = 400; $b = 800;
1、只有在内存中的变量才有地址。
2、有引用关系的两个变量,一个变,另一个就变,相当于两个是一个

如果在函数说明中,有&出现,说明这个参数是一个引用参数,在调用时传参数时,就必须传一个变量

注意:如果在函数的形参中使用"&"修饰参数,在调用该函数时必须传入一个变量给
这个参数,而不是传递一个值。

9)PHP默认参数的函数

function demo($name = "shf",$age = "two",$sex = ‘three‘,$email = "four"){
echo "{$name}=={$age}==={$sex}===={$email}";
}
demo("妹子");


默认参数([]中的)的函数格式说明:
在php中,支持函数的默认方式调用。如果在调用函数时没有指定参数的值,在函数中会
使用参数的默认值。

注意:默认参数必须列在所有没有默认值参数的后面


10)PHP可变个数参数的函数

func_get_args();//返回一个数组,包含所有参数
func_num_args() //返回参数总数
func_get_arg() //接收一个数字参数,返回指定参数

function demo(){
$arr=func_get_args();
$sum = 0;
for($i=0;$i<count($arr);$i++){
$sum +=$arr[$i];
}
return $sum;

}

echo demo(1,2,3,4,5,6,7,8,9);


下面代码效果同上


function demo(){
$arr=func_get_args();
$sum = 0;
for($i=0;$i<func_num_args();$i++){
$sum +=func_get_arg($i);
}
return $sum;

}

echo demo(1,2,3,4,5,6,7,8,9);

11)变量函数

如果将一个函数名称(字符串)给一个变量(字符串),然后在这个变量后面加上括号
,就会调用这个变量值对应的函数

function add($a,$b){
return $a+$b;
}
$var = "add";
echo $var."<br>";
echo $var(10,20);

12)回调函数

在使用一个函数的时候,如果传一个变量不能解决多大的问题。就需要传一个过程进入
到函数中,改变函数的执行行为。

在函数的调用时,在参数中传的部署一个变量或一个值,而是一个函数。这就是回调函数
参数。

$arr = array("aaa","a","aaaaaa","sdfghjkl","xcvbnm","xc","kjhgfdsa");
function mycom($a,$b){

if(strlen($a)>strlen($b)){
return -1;
}else if(strlen($a)<strlen($b)){
return 1;
}else{
return 0;
}
}
print_r($arr);
usort($arr,"mycom");
echo "<br>";
print_r($arr);

function fun($one="1",$two="2",$three="3"){
echo "$one===========$two==========$three<br>";
}
fun();

参数个数如果是变长的时,就不能直接调用这个函数

要借助于 call_user_func_array("fun",array(111));
if(count($_GET==1)){}

fun()

php 入门笔记

原文地址:http://www.cnblogs.com/WEI-web/p/7209248.html



Processed Time:0.17740702629089

_REQUEST:
Array
(
    [0] => read
    [1] => 95483
)
_SESSION:
Array
(
    [fid] => 4
)