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

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
  • 1.静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用。 2静态属性不允许对象使用->操作符调用。(静态属性不存在外部调用的情况,因为其就执行一遍,相当于初始化;以后该属性的变量就会改变,通过静态方法返回值;而静态属性变量不再执行。所以不存在外部调用静态属性的情况只有调用静态方法的用法::方法名;另外如果内部方法调用静态属性或者静态方法需要使用self,parent,static而不是其他类方法使用的$this伪变量) class Car { private static $speed = 10; public static function getSpeed() { return self::$speed; } } echo Car::getSpeed(); //调用静态方法 静态方法也可以通过变量来进行动态调用 $func = 'getSpeed'; $className = 'Car'; echo $className::$func(); //动态调用静态方法 4静态方法中,$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();
    查看全部
  • 加不加unset();结果一样析构函数都会调用
    查看全部
  • 构造函数__construct()析构函数__destruct(): 在类中使用__construct()定义一个构造函数,具有构造函数的类,会在每次对象创建的时候调用该函数,因此常用来在对象创建的时候进行一些初始化工作。 class Car { function __construct() { print "构造函数被调用\n"; } } $car = new Car(); //实例化的时候 会自动调用构造函数__construct,这里会输出一个字符串 在子类中如果定义了__construct则不会调用父类的__construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。 class Car { function __construct() { print "父类构造函数被调用\n"; } } class Truck extends Car { function __construct() { print "子类构造函数被调用\n"; parent::__construct(); } } $car = new Truck(); 同样,PHP5支持析构函数,使用__destruct()进行定义,析构函数指的是当某个对象的所有引用被删除,或者对象被显式的销毁时会执行的函数。 class Car { function __construct() { print "构造函数被调用 \n"; } function __destruct() { print "析构函数被调用 \n"; } } $car = new Car(); //实例化时会调用构造函数 echo '使用后,准备销毁car对象 \n'; unset($car); //销毁时会调用析构函数 当PHP代码执行完毕以后,会自动回收与销毁对象,因此一般情况下不需要显式的去销毁对象。
    查看全部
  • set names utf8;
    查看全部
    0 采集 收起 来源:PHP数据库扩展

    2016-10-28

  • 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;
    查看全部
  • 如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象。 父类调用子类方法: <?php //父类调用子类方法基类 class BaseApp { /** * 调用子类方法 */ function _run_action() { $this->index(); } } class DefaultApp extends BaseApp { /** * 此方法将在父类中调用 */ function index() { echo "DefaultApp->index() invoked"; } function Go(){ //调用父类 parent::_run_action(); } } $default=new DefaultApp(); $default->Go(); //将显示DefaultApp->index() invoked ?>
    查看全部
  • 如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象。 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(); //通过静态方法来获得一个实例
    查看全部
  • $filename = '/data/webroot/usercode/resource/test.txt'; //取得文件的大小并输出 function getsize($size,$danwei='kb'){ $p=''; if($danwei=='kb'){ $p=1; } elseif($danwei=='mb'){ $p=2; } elseif($danwei=='gb'){ $p=3; } //pow()函数代表某个数的几次方; $size=$size/pow(1024,$p); //number_format函数代表将数字格式化,下面这个意思就是$size这个数保留8位小数,小数点用.来表示,千分符用,来表示; return number_format($size,8,'.',','); } $size=filesize($filename); $size=getsize($size,'kb'); echo '文件大小为'.$size.'kb';
    查看全部
  • $con = mysql_connect('localhost','root',''); if (!$con){ die("连接失败").mysql_error(); }else { $db_selected = mysql_select_db('test',$con); $sql = "SELECT * from user_info"; $result = mysql_query($sql,$con); while ($row = mysql_fetch_object($result)){ echo "id:".$row->user_id; echo "name:".$row->user_name."<br/>"; } mysql_close($con); }
    查看全部
  • PHP有两种数组:索引数组、关联数组。 索引和关联两个词都是针对数组的键而言的。
    查看全部
  • 正则表达式中具有特殊含义的字符称之为元字符, 常用的元字符有: \ 一般用于转义字符 ^ 断言目标的开始位置(或在多行模式下是行首) $ 断言目标的结束位置(或在多行模式下是行尾) . 匹配除换行符外的任何字符(默认) [ 开始字符类定义 ] 结束字符类定义 | 开始一个可选分支 ( 子组的开始标记 ) 子组的结束标记 ? 作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。 (查阅量词) * 量词,0 次或多次匹配 + 量词,1 次或多次匹配 { 自定义量词开始标记 } 自定义量词结束标记
    查看全部
    0 采集 收起 来源:元字符与转义

    2016-10-27

  • 第11章 数据库操作 11-1 PHP支持哪些数据库 11-2 PHP数据库扩展 11-3 PHP数据库操作之连接MySQL数据库... 11-4 PHP数据库操作之执行MySQL查询... 11-5 PHP数据库操作之插入新数据到MyS... 11-6 PHP数据库操作之取得数据查询结... 正在学11-7 PHP数据库操作之查询分页数据... 11-8 PHP数据库操作之更新与删除数据... 11-9 PHP数据库操作之关闭MySQL连接. 再学一遍
    查看全部
  • PHP默认已经集成了GD库,只需要在安装的时候开启就行。 header("content-type: image/png"); $img=imagecreatetruecolor(100, 100); $red=imagecolorallocate($img, 0xFF, 0x00, 0x00); imagefill($img, 0, 0, $red); imagepng($img); imagedestroy($img);
    查看全部
    0 采集 收起

    2018-03-22

  • 如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象。
    查看全部
  • 分隔符后面可以使用模式修饰符,模式修饰符包括:i, m, s, x等,例如使用i修饰符可以忽略大小写匹配:
    查看全部

举报

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

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