php的相关函数

1、php调用可变的函数

<?php
function func() {
    echo 'my function called.';
}
$name = 'func';
//调用可变函数
$name();
?>

等同于直接func();

2、替换函数str_replace

<?php
$str = '苹果很好吃。';
//将变量$str中的苹果替换成香蕉
$str=str_replace('苹果','香蕉',$str);
echo $str;
?>

3、判断方法是否存在的函数function_exists,类似的还有class_exists检查类是否存在,file_exists检查文件是否存在

<?php
function func() {
    echo 'exists';
}
$name = 'func';
if (function_exists($name) ) { //判断函数是否存在
    $name();
}
?>

class MyClass{
}
// 使用前检查类是否存在
if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

$filename = 'test.txt';
if (!file_exists($filename)) {
    echo $filename . ' not exists.';
}
4、定义类

<?php
//定义一个类
class Car {
    var $name = '汽车';
    function getName() {
        return $this->name;
    }
}

//实例化一个car对象
$car = new Car();
$car->name = '奥迪A6'; //设置对象的属性值
echo $car->getName();  //调用对象的方法 输出对象的名字
?>

打印值,需要用$car->getName()

<?php
class Car{
    //在这里定义一个共有属性name
public $name='汽车';    
}
$car = new Car();
//在这里输出$car对象的name属性
echo $car->name;   //输出:汽车
?>
使用关键字static修饰的,以通过类名直接调用,操作符为双冒号::。

class Car {
    public static function getName() {
        return '汽车';
    }
​}
echo Car::getName(); //结果为“汽车”

<?php
class Car {
    public $speed = 0;
    //增加speedUp方法,使speed加10
    public function speedUp(){
    $this->speed+=10;
}
}
$car = new Car();
$car->speedUp();
echo $car->speed;  //输出为10
5、构造函数与析构函数
<?php
class Car {
    //增加构造函数与析构函数
 function __construct() {
       print "构造函数被调用 \n";
   }
function __destruct() {
       print "析构函数被调用 \n";
}   
}
$car = new Car();
?>

输出结果:

构造函数被调用 
析构函数被调用
若调用父类的构造函数,需要使用parent::__construct()

<?php
class Car {
   function __construct() {
       print "父类构造函数被调用\n";
   }
}
class Truck extends Car {
   function __construct() {
       print "子类构造函数被调用\n";
       parent::__construct();
   }
}
$car = new Truck();
?>

输出结果:

子类构造函数被调用
父类构造函数被调用
6、调用static,可以直接用类名::方法名进行调用

<?php
class Car {
    private static $speed = 10;  
    public function getSpeed() {
        return self::$speed;
    }
    //在这里定义一个静态方法,实现速度累加10
    public static function speedUp(){
        return self::$speed+=10;
    }
}
$car = new Car();
Car::speedUp();  //调用静态方法加速,一般的调用可用$car->speedUp();
echo $car->getSpeed();  //调用共有方法输出当前的速度值
?>

输出结果:20

注意:$speed的初始值,一般前置都需要定义private,不可直接$speed=0;

7、继承类举例

速度Truck速度由父类10加到60

<?php
class Car {
    public $speed = 0; //汽车的起始速度是0
    public function speedUp() {
        $this->speed += 10;
        return $this->speed;
    }
}
//定义继承于Car的Truck类
class Truck extends Car{
    public function speedUp() {
        $this->speed =parent::speedUp()+50;
    }
}

$car = new Truck();
$car->speedUp();
echo $car->speed;
?>

8、重载,通过__call来实现

<?php
class Car {
    public $speed = 10;
    //在这里使用重载实现speedDown方法
    public function __call($name,$args){
        if($name=='speedDown'){
            $this->speed-=10;
        }
    }
}
$car = new Car();
$car->speedDown(); //调用不存在的speedDown方法,输出结果为0,减速10
echo $car->speed;

------------------------------------------------------------------------------------------------------------

来源:慕课网


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值