php第二章(下)

一、复合数据类型

1、方法、函数

有参函数

无参函数

 2、作用域

全局变量和局部变量

全局变量不能直接在函数内使用,需要在函数内部使用时,需要global

 可以看到,在php函数内部声明的变量只能在函数内部访问

3、数组

声明数组有两种方式:

$a=array('li'=>1,"12",[123,12,1]);
$b=['li'=>1,"12",[123,12,1]];

 

 数组取值

将数组中的值一次性取出:用for循环或foreach

$a=array(1,"12",[123,12,1]);
$b=array('li'=>1,"12",[123,12,1]);
$c=[1,2,3];
$d=['lihua'=>'第一组','liqiang'=>'第二组','zhanghua'=>'第三组'];

//取key为数字的value
for($i=0;$i<count($a);$i++){
    print_r($a[$i]);
    echo "\n";
}


//取定义的key对应的value
foreach($a as $element){
    print_r($element);
    echo "\n";
}
foreach($b as $element=>$val){
    print_r($element);
    echo "\n";
    print_r($val);
    echo "\n";
}

最后的foreach输出的值

4、类

面向对象的编程语言有三大特性:封装、继承、多态

面向对象的封装特性:将类中的成员属性和方法内容细节尽可能地隐藏起来,确保类外部代码不能随意访问类中的内容。

面向对象的继承特性:使得子类可继承父类中的属性和方法,提高类代码的复用性。

面向对象的多态特性是最常用到的一种特性。所谓多态,是指同一个东西不同形态的展示。在继承过程中将父类中的方法重新定义。

PHP的封装

可使用 public、protected、private 来修饰对象的属性和方法。使用不同修饰符的属性和方法其可被访问的权限也不同:

public:可以在任何地方调用,如果在类中的属性和方法前面没有修饰符,则默认修饰符为 public。

protected:可在本类和子类中被调用,在其他地方调用将会报错。

private:只能在本类中被访问。

声明类

描述:php中类的定义都以class开头,后跟类名,然后加一个花括号。

           花括号里是类的属性或者方法。

语法:class  类名{类内部的结构 }

class Person{
    public $name='lihua';
    public $sex='女';
    function showself(){
        echo $this->name;
    }
}

类的实例化及属性方法调用

描述:创建一个类的实例,必须用new关键字

语法:$ duixiangming =new  类名();

举例:

class Person{
    public $name;
    protected $sex;
    private $weight;
    function __construct($name_f,$sex_f,$weight_f){
        $this->name=$name_f;
        $this->sex=$sex_f;
        $this->weight=$weight_f;
    }
    function showself(){
        echo $this->name;
    }
}
$x=new Person('xiaoming','1',123);
echo $x->name;  //可以调用
$x->showself();
echo $x->sex;  //报错,因为受保护的属性只能被其自身及子类或父类访问
echo $x->weight;  //报错,私有属性只能被自身访问

 php中的继承

  • 类的继承只能是单一继承,例如类C不能同时从类A和类B继承。
  • 一个类可以继承于一个父类,同时使用一个或多个接口。类还可以直接继承于某个特定的接口。
  • 类、类的属性和方法的访问都可以通过访问权限修饰符进行控制。访问权限修饰符放在属性和类的前面,public表示公有属性或方法,private表示私有属性或方法,protected表示保护属性或方法。
  • 关键字final放在特定的类前面,表示此类不能再被继承。final放在某个类方法前面,表示此方法不能在继承后被“重写”或重新定义

举例

class Person{
    public $name;
    protected $sex;
    private $weight;
    function __construct($name_f,$sex_f,$weight_f){
        $this->name=$name_f;
        $this->sex=$sex_f;
        $this->weight=$weight_f;
    }
    function showself(){
        echo $this->name;
        echo "这是Person类的输出";
    }
}
//继承
class Teacher extends Person {
    function show(){
        echo $this->sex;
        echo "这是老师类的输出";
    }
}
$teacher=new Teacher('张老师','男',180);
$teacher->showself();
$teacher->show();
echo "\n";
print_r($teacher);

php中多态

多态就是同样的方法名和参数名实现不同的功能。

接口是一种成员属性全部为抽象或常量的特殊抽象类

  1. interface 接口名称{}

  • 接口只能定义常量和方法。
  • 接口的方法是抽象的,且必须在实现它的类中重定义,否则会报错。
  • 接口的方法只能是public(默认),且没有方法体(只能定义这个方法,不能有内容{…})。

        2.abstract class 抽象类名称{}

  • 抽象类只能被继承,不能实例化。
  • 抽象方法必须在子类实现,否则会报错。
  • 抽象方法只能定义,不能有内容(没有方法体{…}这部分,定义了会报错)。
  • 实现抽象方法的子类方法访问控制权限不能低于抽象方法原定义,即抽象方法为public,子类可为public,protected,private。

interface Common
{
    function show();
}

class Person
{
    public $name;
    public $age;


}

class Teacher extends Person implements Common
{

    function show()
    {
        // TODO: Implement show() method.
        echo "我是实现Common接口后实现的show方法\n";
    }
}

$teacher = new Teacher();
$teacher->name = "张老师";
$teacher->age = 23;
$teacher->show();

print_r($teacher);

php中的类常量与静态变量

        描述:类常量由关键词const声明,静态变量用关键词static声明

         由const声明的类常量不允许发生改变。

          由static声明的静态变量,仅在类被声明的时候执行一次,但可以修改。

          这两者的调用方式都是::调用。

          这两者调用的时候可以不实例化直接用类名调用。

   class  类名{
 
                        const 类常量(没有$开头)=简单值;
 
                        static   静态变量名(有$开头)=简单值;
 
}

有些项目代码将类代码统一放在一个.php文件,调用的时候用文件包含函数,相当于将调用的文件复制了一下。文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行

文件包含的4种函数:include、require、include_once、require_once

require() // 程序一运行文件便会包含进来,若包含文件不存在产生致命错误,程序终止运行

require_once() // 如果一个文件已经被包含过,则不会在包含它

include() // 只在执行到此函数时才去包含文件,若包含的文件不存在产生警告,程序继续运行

include_once() // 如果一个文件已经被包含过,则不会在包含它

二、定义常量的方法

两种方式

define(message,'abc');  //php5.3之前

const m='tangl';

三、三元运算符

条件判断的一种方式

语法:判断条件?满足条件输出:不满足条件输出;

$a=1;
$b=2;
echo $a>$b?'a大于b':'a不大于b';

四、标记

短风格

<? echo 'hello';?>

脚本风格

<scrip language="php">php代码</script>

ASP风格

<% echo "PHP 代码"; %>

从PHP7版本开始,PHP标记风格只支持 <?php echo "PHP 代码"; ?> 格式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值