PHP笔记02
PHP数组
- 能够在一个变量存储多个值
- 取值用下标,下标从0开始计算
- 好处:在处理物品清单等大量相同属性的变量内容时可以集中存取
<?php
$arr=array("like","xuexi","hello","world");
echo "I","$arr[0]","$arr[1]","$arr[2]","$arr[3].";
?>
PHP数组的创建
- 数值数组
- 关联数组
- 多维数组
使用 count函数获取数组长度
<?php
$arr=array("like","xuexi","hello","world");
echo count($arr);
?>
遍历数组的值
<?php
$arr=array("like","xuexi","hello","world");
$x=count($arr);
for($i=0;$i<$x;$i++){
echo $arr[$i],"<br>";
}
?>
PHP 关联数组
- 一一对应的值
<?php
$age=array("xiaoming"=>"20","xiaohong"=>"21","xiaogang"=>"22");
echo "小明今年",$age['xiaoming'],"岁。";
?>
- 关联数组的遍历
<?php
$age=array("xiaoming"=>"20","xiaohong"=>"21","xiaogang"=>"22");
foreach($age as $name=>$ages)
echo "$name:$ages<br>";
?>
PHP数组排序函数
- sort() 升序
- rsort() 降序
- asort() 根据关联数组值升序排序
- ksort() 根据关联数组的键升序排序
- arsort() 根据关联数组的值降序
- krsort() 根据关联数组的键降序
PHP超级全局变量
$GLOBALS
它是一个超全局变量数组,变量名字就是它的键
<?php
$x=1;
$y=2;
function test(){
$GLOBALS['z']=$GLOBALS['x']+$GLOBALS['y'];
}
test();
echo $z;
?>
$_SERVER
包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
$_REQUEST(不常用)
用于收集HTML提交的表单数据
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_REQUEST['fname'];
echo $name;
?>
</body>
</html>
$_POST
被广泛应用于收集表单数据
<html>
<body>
<form method="post" action="<?php echo $_server['PHP_SELF'];?>">
<input type="text" name="uname">
<input type="submit">
</form>
<?php
$name=$_POST['uname'];
echo $name;
?>
</body>
</html>
$_GET
也应用于收集表单
PHP while循环
while(条件){
要执行的代码块
}
<?php
$a=1;
while($a<10){//循环输出直到a变量等于10
echo $a++;
}
?>
do{
要执行的代码;
}while(条件);
<?php
$i=1;
do{//do...while特点就是先执行一次语句再做判断
echo $i++;
}while(i==1);//为了方便结合性while后面需要加分号
?>
PHP for循环
for(初始值;条件;增量){
需要执行的代码
}
<?php
for($i=0;$i<10;$i++){
echo "这是第$i次输出!";
}
?>
PHP foreach循环
foreach ($arr as $x){
要执行代码,多用于遍历数组
}
<?php
$x=array("afd","arf","daf");
foreach($x as $a){
echo $a;
}
?>
PHP函数
PHP函数创建方法
<?php
/*
function 函数名(){
要执行的代码;
}
*/
function test(){
echo "hello world";
}
test();
?>
带参数的函数,带return返回值的函数
<?php
function sum($a,$b){
return a+b;
}
echo sum(4,5);
?>
PHP常量
-
//__LINE__ 显示当前行号 <?php echo '这是第 " ' . __LINE__ . ' " 行'; ?>
-
//__FILE__ 完整文件路径 <?php echo '该文件位于"' . __FILE__ . '"'; ?>
......
PHP面向对象
-
类
-
对象
-
成员变量
-
成员函数
-
继承
-
父类
-
子类
-
多态
-
重载
-
抽象性
-
封装
-
构造函数
-
析构函数
<?php //使用class关键字加上类名定义类,例如一个狗对象 class dogs{ //成员变量 //private 私有内部可用 protected 本类子类父类访问 //public 任何人都可以访问 //可用用于方法 public var $name; var $age; var $ggmm; //构造函数 function __construct($name,$age,$ggmm){ $this->age=$age; $this->name=$name; $this->ggmm=$ggmm; } //成员函数 function setage($age){ $this->age=$age; } function setname($name){ $this->name=$name; } function setggmm($ggmm){ $this->ggmm=$ggmm; } //动作 function eat(){ echo "你对象在吃饭"; } function getage(){ return $this->age; } function getname(){ return $this->name; } function getggmm(){ return $this->ggmm; } } //使用构造函数实例化对象 $dog = new dogs("zhouwan",20,"gg"); //实例化对象 // $dog = new dogs; // //调用成员方法 // $dog->setage(20); // $dog->setname("wangcai"); // $dog->setggmm("gg"); echo $dog->getage(),$dog->getname(),$dog->getggmm(); $dog->eat(); //继承 class cwgs extends dogs{ var $pz; //重写构造方法 function __construct($name,$age,$ggmm,$pz){ $this->pz=$pz; $this->name=$name; $this->age=$age; $this->ggmm=$ggmm; } function getpz(){ return $this->pz; } } //实例化 $cwg=new cwgs("xx",20,"mm","hsq"); echo $cwg->getname(),$cwg->getage(),$cwg->getggmm(),$cwg->getpz(); ?>
接口
接口也是一个类 用interface定义
接口有一定量方法用于实现功能实现接口必须实现这些类
使用implements关键字实现接口可以同时实现多个接口
抽象类
抽象类用abstract定义
里面方法必须有抽象方法强制子类实现该方法
子类实现的方法不能比抽象类的访问权限更私有
final关键字
如果父类出现final方法子类无法覆盖
如果一个类被声明final则不能被继承
-