为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
PHP进阶篇_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
  • 内置函数str_replace可以实现字符串的替换。 <?php $str = '苹果很好吃。'; //请将变量$str中的苹果替换成香蕉 $str = str_replace('苹果','香蕉',$str); echo $str; ?>
    查看全部
    0 采集 收起

    2018-03-22

  • PHP中的重载指的是动态的创建属性与方法,是通过魔术方法来实现的。属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。 class Car { private $ary = array(); public function __set($key, $val) { $this->ary[$key] = $val; } public function __get($key) { if (isset($this->ary[$key])) { return $this->ary[$key]; } return null; } public function __isset($key) { if (isset($this->ary[$key])) { return true; } return false; } public function __unset($key) { unset($this->ary[$key]); } } $car = new Car(); $car->name = '汽车'; //name属性动态创建并赋值 echo $car->name; 方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。 class Car { public $speed = 0; public function __call($name, $args) { if ($name == 'speedUp') { $this->speed += 10; } } } $car = new Car(); $car->speedUp(); //调用不存在的方法会使用重载 echo $car->speed;
    查看全部
  • public,protected和private来实现。被定义为公有的类成员可以在任何地方被访问。被定义为受保护的类成员则可以被其自身以及其子类和父类访问。被定义为私有的类成员则只能被其定义所在的类访问。 类属性必须定义为公有、受保护、私有之一。为兼容PHP5以前的版本,如果采用 var 定义,则被视为公有。 class Car { $speed = 10; //错误 属性必须定义访问控制 public $name; //定义共有属性 } 类中的方法可以被定义为公有、私有或受保护。如果没有设置这些关键字,则该方法默认为公有。 class Car { ​ //默认为共有方法 function turnLeft() { } } 如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象。 class Car { private function __construct() { echo 'object create'; } private static $_object = null; public static function getInstance() { if (empty(self::$_object)) { self::$_object = new Car(); //内部方法可以调用私有方法,因此这里可以创建对象 } return self::$_object; } } //$car = new Car(); //这里不允许直接实例化对象 $car = Car::getInstance(); //通过静态方法来获得一个实例
    查看全部
  • 懒惰模式:在可匹配与可不匹配的时候,优先不匹配; 贪婪模式:在可匹配与可不匹配的时候,优先匹配
    查看全部
  • 静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用。静态属性不允许对象使用->操作符调用。 class Car { private static $speed = 10; public static function getSpeed() { return self::$speed; } } echo Car::getSpeed(); //调用静态方法 静态方法也可以通过变量来进行动态调用 $func = 'getSpeed'; $className = 'Car'; echo $className::$func(); //动态调用静态方法 静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。 class Car { private static $speed = 10; public static function getSpeed() { return self::$speed; } public static function speedUp() { return self::$speed+=10; } } class BigCar extends Car { public static function start() { parent::speedUp(); } } BigCar::start(); echo BigCar::getSpeed();
    查看全部
  • //第一种:用数组变量的名字后面跟一个中括号的方式赋值,当然,关联数组中,中括号内的键一定是字符串。比如,$arr['apple']='苹果'; //第二种:用array()创建一个空数组,使用=>符号来分隔键和值,左侧表示键,右侧表示值。当然,关联数组中,键一定是字符串。比如,array('apple'=>'苹果');
    查看全部
  • 所谓function func(){} $name = 'func'; $name();的结果调用了func() 就是相当于起了个别名(小名)$name 且方法名不为替换 而是为共存
    查看全部
    0 采集 收起

    2016-08-15

  • 格式化
    查看全部
    0 采集 收起

    2016-08-14

  • <?php $fruit=array('apple'=>"苹果",'banana'=>"香蕉",'pineapple'=>"菠萝"); foreach($fruit as $key=>$value){ echo '<br>键是:'.$key.',对应的值是:'.$value; } ?>
    查看全部
  • str_replace 替换
    查看全部
    0 采集 收起

    2016-08-14

  • strpos 查找
    查看全部
    0 采集 收起

    2016-08-14

  • substr 截取
    查看全部
    0 采集 收起

    2016-08-14

  • <?php function poss($origin,$rest){ for ($i=0; $i < strlen($origin); $i++) { if(substr($origin,$i,strlen($rest)) == $rest){ return $i; } } } echo poss("hello,world",'ld'); echo "<hr/>"; echo strpos("hello,world",'ld'); ?>
    查看全部
    0 采集 收起

    2018-03-22

  • <?php /*用php实现substr()函数*/ function sub($str,$start,$length){ $obj = ""; for($i=$start; $i<$start+$length; $i++){ $obj .= $str{$i}; } return $obj; } $str = "hello,world"; echo sub($str,1,7); echo "<br/>"; echo substr($str,1,7); ?>
    查看全部
    0 采集 收起

    2018-03-22

  • 执行效率上的区别!
    查看全部
    0 采集 收起

    2016-08-14

举报

0/150
提交
取消
课程须知
需要有一定的网页基础知识如HTML、CSS样式等,并且已经学习完成《PHP入门篇》对PHP已经有了简单的了解,如变量、常量、数据类型等。
老师告诉你能学到什么?
全面的掌握PHP的理论知识与实践中的应用方法,提高编程能力与掌握网页开发技能。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!