1.数组:
$array_1 = array("i","like","coding");
echo $array_1[0].' '.$array_1[1].' '.$array_1[2].'.';
echo count($array_1); //和sizeof类似 返回数组元素个数
1> 关联数组
给定义的元素以指定的键值
①$array_1 = array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
②$array_1['Peter']="35";
$array_1['Ben']="37";
$array_1['Joe']="43";
关联数组中遍历元素键值对:
(1)
<?php
foreach($array_1 as $key=>$value)
{
echo "Key=" .$key. ",value=".$value;
echo "<br>";
}
?>
2>数组排序
sort() - 对数组进行升序排列 //针对一个简单数组 没有键值对的 将元素按照字母排序
<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars);
print_r($cars);
?>
rsort() - 对数组进行降序排列 <-- 类似与sort 是降序 -->
asort() - 根据关联数组的值,对数组进行升序排列
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age);
?>
ksort() - 根据关联数组的键,对数组进行升序排列
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);
?>
arsort() - 根据关联数组的值,对数组进行降序排列
krsort() - 根据关联数组的键,对数组进行降序排列
2.$_GET && $_POST
<--从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。-->
<--从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。 -->
3.面向对象
1>构造函数初始化
<?php
//构造方法与this关键字
class Person{
public $name;
public $age;
}
$ming = new Person();
$ming->name = "hhh";
$ming->age = 23;
var_dump($ming);
//构造函数直接初始化
class Person_construt{
public $name;
public $age;
public function __construct($name,$age){
$this->name = $name;
$this->age = $age;
}
public function test_1(){
echo "1111";
}
public function test_2(){ //调用类中函数 $this->function();
$this->test_1();
echo "2222"
}
}
$ming = new Person_construt("xiao", 22);
var_dump($ming);
?>
<---- 构造函数add: ----->
<---- 父类中实现构造函数,若在继承子类中没有声明定义构造函数,那么会自动使用父类的构造函数; ----->
<---- 若继承的子类定义了自己的构造函数,那么不会调用父类构造函数,若要调用则需要自己写出来 (parent::__construct();) ----->
2>类进行继承:权限必须比父类的权限等于或者大于
<?php
class Father{
public $name;
public $age;
public function __construct($name,$age){
$this->name = $name;
$this->age = $age;
}
public function jump(){
echo 'I can jump 3 <br />';
}
/*final*/ public function work(){
echo ' I am working workhard<br />';
}
}
class Son extends Father{
public $height;
public $play;
public function __construct($name,$age,$height,$play){
parent::__construct($name,$age);
$this->height = $height;
$this->play = $play;
}
public function jump(){
echo 'I can jump 5 <br />';
}
public function work(){
parent::work();
echo ' I can study<br />';
}
}
?>
3> 接口类 && 抽象类
<- 抽象类: ->
<- 抽象类可以继承并不实现其接口功能 ->
<?php
abstract class Temp1{
abstract function A_1();
abstract function A_2();
public function B_1(){ ```` ;}
}
?>
若一个类(普通类)继承抽象类,那么必须实现其功能
若一个抽象类继承抽象类,那么实现或者不实现其父类功能都是可以的
<- 接口类 ->
<?php
interface Template
{
public function setVariable($name, $var);
public function getHtml($template);
}
class Template implements iTemplate{
private $vars = array();
public function setVariable($name, $var)
{echo "world";}
public function getHtml($template)
{echo "hello"; }
}
?>
<?php
interface Temp{
public function test1();
}
abstract class Temp2{
abstract function test3();
public function test2(){echo 'hello normal function<br>';
}
}
abstract class Temp1 extends Temp2 implements Temp{
abstract function test4();
function test1(){echo "test1() of the Temp1<br>";}
}
class Temp3 extends Temp1{
function test2(){echo "test2()<br>";}
function test3(){echo "test3()<br>";}
function test4(){echo "test4()<br>";}
function test1(){echo "test1() of the Temp3 <br>";}
}
?>
若一个类(抽象类或者普通类)同时继承抽象类和接口类,那么首先应该继承抽象类(extends)其次继承接口类(implements)
一个项目中一个抽象类方法的定义在程序结束之前必须实现,而接口可以不实现。
关键字:static、abstract、final
<-static->: 虽然放在类中,但是不受该类束缚,不需要声明对象实例就可以直接被外部访问。
----->add: static类方法中不能用$this指针
<-abstract->: 抽象方法不能直接使用,必须经过实现(implement关键字)才可以使用
<-final-> : 表示该方法是最终的版本,不能再重新声明,也不能再重写。
如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。