PHP学习笔记1

php变量转换测试与常量

php的八种变量

1、整型($ num=10 )
2、浮点型($ num=10.5)
3、布尔型($ str=ture or flase)
4、数组 ($ arr=array(‘1’,‘2’,‘3’)
5、字符串($ str=‘hello world’)
6、资源($ link=资源)
7、null
8、对象

<?php
class person{
  public $ name='bk';
  public $ age='20';
  public $ sex='men';
  public function say(){echo "my name is {$this->name}";
  } 
}
$bk=new person();
echo $bk->say();
?>`

定义一个人具有名字等功能,并输出他的名字。

修改页面编码

当我们在编写php时遇见汉字,如果不表明编码则可能会出现乱码现象
因此我们会在写php的开头表明所使用的编码,有下面三种表明形式:

1、header('content-type:text/html;charset=utf-8');
2<meta http-equiv='content-type' content='text/html;charset=utf-8'>
3<meta charset='utf-8'>

判断变量是否存在

1、isset();//判断变量是否被设置
返回结果为变量不存在的情况,若为空则未定义即null;
2、empty();//判断变量是否为空
变量为空的情况有:null、 (空格)、“0”、false、aeeay()、0、0.0、;

变量的输出方法与用法

1、echo
2、var_durmp() //输出的同时会打出结果的字节数
3、print //格式化输出
4、sprintf //只返回不打印 返回字符串
5、print

变量的类型测试

使用echo_gettype();
不能精准的判断类型(返回string)
使用var_durmp(is_*($));
精准的判断类型(返回bool)
echo打印布尔类型的值
会将 ture看为1;将flase看为 ’空格‘;

变量类型自动转换

1、整形可以自动转换为字符串形式
2、字符串转换为整型时只能转换为字符串前面的数字
3、字符串转换为布尔型为假
强制类型转换
(int)
(float)
(bool)
(string)
(array)
(object)

例:<?php
		$a='10';
		var_dump((int)$a);
	?>

常量的定义域使用:define(‘XXX’,‘内容’);//XXX必须为大写

<?php

 define('HOST','localhost');
 define('USER','user1');
 define('PASS','1223');

?> 

判断一个常量是否存在:defined(‘XXX’);//返回一个bool值

预定义常量

即系统已经表明好的常量我们可以直接使用
LINE//所在位置的行列数,
FILE//打印出文件所在的电脑目录

"echo _FILE_.'-->'_LINE_"

M_PI//圆周率
FUNCTION//打印出当前函数名

<?php
function show(){
  echo 'my name is '.__FUNCTION__.'' ;
}
show();
?>

运算符

一元运算

++; --;

二元运算符

1、数字运算符:
+;-;*;%(除);/(余);
2、赋值运算符:
=;+=;*=;-=;%=;/=;.=;
3、比较运算符:
== ;!=;>;<;>=;<=;=== ;!==;
4、逻辑运算符(开关:&&前面为ture则开,||前面为flase则开)

三元运算符

$a?$b:$c
与
if($a)
{echo b;}
else{echo c;}
相同

在这之中$a为条件

运算级的优先

1、++,–,
2、*,/,%,
3、+,-,.,
4、< <= > >=
5、== != === !==
6、& |
7、&& ||
8、? :
9、= += -= *= /= %=
另外的运算符:@;->;new;=>;instanceof;

流程控制与函数

流程控制:

单分支机构:if…else
多分支结构:if…elseif…else ; switch ;
循环结构:while ; for ;

特殊流程控制

break(结束整个循环) ; continue(结束本次循环) ; exit(结束页面脚本) ; die() (与exit效果大致相同);
函数中的return与echo的区别:
基本用法:return有返回值;echo无返回值;
对于两种用法更倾向于使用return不推荐使用echo

原因 :return用法更为灵活能够在使用函数的时候添加一些其他东西
echo用法在使用函数添加东西时会导致输出信息倒序等情况

判断是否为内置函数:function_exists(‘xxx’);

函数

语言结构

if() ;for() ;while() ;switch() ;array() ;echo() ;print() ;list() ;isset() ;unset() ;freach() ;exit() ;die();include() ;require() ;empty() ;

语言结构不属于函数类型无法被查询函数查询

系统函数

count() ;
array_merge() ;等等

自定义函数:

匿名函数

变量的局部性

局部变量:在函数中定义的变量

全局变量:函数外定义的变量

连接局部与全局:global $x;

<?php
	$i=10;
	function show(){
		global $i;//将全局变量i链接到函数内
		$i++;}
	show();
	echo $i;
?>

超全局变量:

​ · 常量
​ · 预定义常量
· 超全局数组
静态变量: static $i ;(函数内统同一 个变量在同名函数调用多次的情况下能够连续使用)

函数与参数

1、默认参数

<?php
function sum($i,$j);
{return $i+$j;}
echo sum(1,9)//将值分别赋值给i与j
?>

2、回调参数
用一个函数的参数调用另一个函数

<?php
	function show($i,$j,$s){
		return $s($i,$j);//调用s所赋值的sum函数,将i与j的值分别传递给了a与b
    }
	function sum($a,$b){
	return $a+$b;//计算a与b,并返回
	}
	echo show(1,9,'sum');//将1与2赋值给i与j,将函数sum赋值给s
?>

3、引用参数

<?php
$i=100;
	function show(&$i){
	$i++;
    }
    show($i);//将全局变量i的地址传递给了局部变量i因此局部变量具有了100的值
	echo $i;//最后输出101
?>

附:&符的解释

<?php
$a=10;
$b=&$a;//当没有&符时的结果为10,当有&符的结果为100
$b=100;
echo $a;
?>

在这段代码中&符所起的作用是:将a的引用地址传递给b。因此当输出a时其实是将b的值传递到了a的身上

1、变量函数
使用变量调用函数

<?php
function show(){
    echo'11112222<br>';
}
$var='show';//将一个函数名赋给一个变量
$var();//用变量调用了函数
?>

2、可变个数参数的函数:
‘func_get_args()’
‘func_num_args()’

<?PHP
function show(){
    $arr=func_get_args();//输出为数组型将传入的参数以数组形式输出
    echo "<pre>";
    print_r($arr);
    echo"<pre>";
    $num=func_num_args();//输出传入参数的个数
    ehco show;
}
show(1,2,3,4,5,'q','w','e','r')
?>

3、递归函数

<?php//用递增函数表达数字的递加
$n=3;
function sum($n){
    static $tot;//将tot设置为静态变量
    $tot+=$n;
    if($n>1){
        sum($n-1);
    }
    return $tot;//返回tot的值
}
echo sum($n);
?>

递归函数的案例:

<?php
$n=3;
function sum($n){
    echo"<p>{$n}<p>";//第一层输出第一个数‘3’;第二层输出‘2’;第三层输出‘1’
    if($n>1){
        sum($n-1);//n=3满足条件,即重新调用函数这时n=2为第二层;n=2满足条件,即重新调用函数这时n=1为第三层;
    }
    echo"<p>{$n}<p>";//n=1不满足条件输出第三层的‘1’;在完成第二层的‘2’;在完成第一层的‘3’;
}
sum($n);//调用函数(设为第一层)
?>
    即结果为3 2 1 1 2 3

数组元素

1、下标|键|key
2、值|value

数组的分类

索引数组

$arr=array(1、2、3);

更改key值
<?php
$arr=array(5=>1,10=>3,15=>5);//更改key值
echo $arr[5];//输出1
?>
自动补充key且自动累加
<?php
$arr[0]='a';
$arr[]='b';
$arr[]='c';
$arr[]='d';
echo "<pre>";
print_r($arr);
echo "<pre>";
?>

关联数组

1$arr=array('name'=>'user','age'=>'18','sex'=>'nan');
2$arr['name']='user';
$arr['age']='18';
$arr['sex']='nan';

混合数组

$arr=array(1,2,3);
$arr=array('user','age'=>'18','sex'=>'nan');//user的key为0其余为指定的key

多维数组的定义方法

一般建议不大于三维数组

二维数组
<?php
$arr['name']='user';
$arr['age']='18';
$arr['sex']=array(1,2,3);//将数组中套数组进行输出,也可以重复套娃。
echo "<pre>";
print_r($arr);
echo "<pre>";
echo $arr['sex'][2];//多维数组取值
?>

查看数组的内容打印数组
print_r();更清晰
var_dump();比较乱

数组遍历

<?php
$arr=array('user',18,'nan');
list($a,$b,$c)=$arr;//将三个value分别赋值给a、b、c;
echo $a;
echo $b;
echo $c;//输出
?>
<?php
$arr=array('user',18,'nan');
$arr2=echo($arr);
echo "<pre>";
    print_r($arr2);
echo "</pre>";
?>
foreach数组遍历
<?php
$arr=array('name'=>'stu','age'=>20,'sex'=>'men');
foreach($arr as $k => $v){
echo"<h2>{$k}:{$v}</h2>";
}
?>

超全局数组

$_GET//专门用来接收地址栏中的参数
$_SERVER
   ['SERVER_NAME'] 服务器域名
    ['REMOTE_ADDR'] 客户端ip
    ['SERVRT_ADDR'] 服务ip
    ['SERVRT_ADDR'] 服务器端口
    ['Document_root']当前脚本的系统绝对路径
    ['REQUEST_URI']当前脚本网站绝对路径
    ['PHP_SELF'] 当前脚本的网站绝对路径
$_POST//form...post传参;
$_REQUEST//同时可以接受POST与GET的传参
$_FLIES
$_COOKIE
$_SESSION
$GLOBALS//分别可以包含$_GET$_POST$_COOKIE$_FLIES数据

表单数据如何提交给php文件

1、text数据

2、password数据

3、radio单选数据

4、checkbox多选数据

5、 select下拉菜单数据

6、多选下拉菜单数据

7、textarea文本域数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值