-
PHP类和对象之访问控制 1、访问控制通过关键字public、protected和private来实现。 2、被定义为公有的类成员可以在任何地方被访问。 3、被定义为受保护的类成员则可以被其自身以及其子类和父类访问。 4、被定义为私有的类成员则只能被其定义所在的类访问。 5、类属性必须定义为公有、受保护、私有之一。为兼容PHP5以前的版本,如果采用var定义,则被视为公有。 例: class Car{ $speed = 10;//错误,属性必须定义访问控制 public $name; //定义公有属性 } 6、类中的方法可以被定义为公有、私有或受保护。如果没有设置这些关键字,则该方法默认为公有。 例: class Car{ //默认为公有方法 function turnLeft(){ } } 7、如果构造函数定义了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单列模式只允许有一个全局唯一的对象。 例: 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();//通过静态方法来获得一个实例查看全部
-
php类和对象之Static静态关键字 1、静态属性与方法可以在不实例化类的情况下调用,直接使用(类名::方法名)的方式进行调用。 2、静态属性不允许对象使用->操作符调用。 例: class Car{ private static $speed = 10; public static function getSpeed(){ return self::$speed; } } echo Car::getSpeed();//调用静态方法 3、静态方法也可以通过变量来进行动态调用 例: $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();查看全部
-
PHP类和对象之构造函数和析构函数 1、PHP5可以在类中使用__construct()定义一个构造函数,具有构造函数的类,会在每次对象创建的时候调用该函数,因此常用来在对象创建的时候进行一些初始化工作。 例: class Car{ function __construct(){ print "构造函数被调用\n"; } } $car = new Car();//实例化的时候,会自动调用构造函数__construct,这里会输出一个字符串 2、在子类中如果定义了__construct则不会调用父类的__construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。 例: class Car{ function __construct(){ print "父类构造函数被调用\n"; } } class Truck extends Car{ function __construct(){ print "子类构造函数被调用\n"; parent::__construct(); } } $car = new Truck(); 3、同样,PHP5支持析构函数,使用__destruct()进行定义,析构函数指的是当某个对象的所有引用被删除,或者对象被显式的销毁时会执行的函数。 例: class Car{ function __construct(){ print "构造函数被调用\n"; } function __destruct(){ print "析构函数被调用\n"; } } $car = new Car();//实例化时会调用构造函数 echo '使用后,准备销毁car对象\n'; unset($car);//销毁时会调用析构函数 4、当PHP代码执行完毕以后,会自动回收与销毁对象,因此一般情况下不需要显式的去销毁对象。查看全部
-
很有必要记一下这种凭空创造文件的方法,虽然目前不知道这种方法可不可行查看全部
-
catch(Exception $e) {//"catch" 代码块会捕获异常,并创建一个包含异常信息的对象 "这里是否说明catch()函数不光能捕捉错误,而且可以创建一个“错误包含箱”,只要这个箱在即便没抓到错误,只要这个箱子存在就能触发‘错误信息’的输出呢?查看全部
-
课程不负责,同学负责,通过这串代码充分了解了fget()和fread()的用法了 $file = fopen('file1.txt', 'rb'); if (!feof($file)) { echo fgets($file) . '读取一行<br>'; } fclose($file); $file = fopen('file1.txt', 'rb'); if (!feof($file)) { echo fread($file, 4096) . '读取全部<br>'; } fclose($file);查看全部
-
如果模式中包含较多的分割字符,建议更换其他的字符作为分隔符,也可以采用preg_quote进行转义。 $p = 'http://'; $p = '/'.preg_quote($p, '/').'/'; echo $p; 分隔符后面可以使用模式修饰符,模式修饰符包括:i, m, s, x等,例如使用i修饰符可以忽略大小写匹配: $str = "Http://www.imooc.com/"; if (preg_match('/http/i', $str)) { echo '匹配成功'; }查看全部
-
PHP中使用PCRE库函数进行正则匹配,比如上例中的preg_match用于执行一个正则匹配,常用来判断一类字符模式是否存在查看全部
-
在子类中如果定义了__construct则不会调用父类的__construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。 同样,PHP5支持析构函数,使用__destruct()进行定义,析构函数指的是当某个对象的所有引用被删除,或者对象被显式的销毁时会执行的函数。 class Car { function __construct() { print "构造函数被调用 \n"; } function __destruct() { print "析构函数被调用 \n"; } } $car = new Car(); //实例化时会调用构造函数 echo '使用后,准备销毁car对象 \n'; unset($car); //销毁时会调用析构函数查看全部
-
PHP5可以在类中使用__construct()定义一个构造函数,具有构造函数的类,会在每次对象创建的时候调用该函数,因此常用来在对象创建的时候进行一些初始化工作。查看全部
-
$arr=array('0'=>'苹果'); if( isset($arr) ) {print_r($arr);查看全部
-
索引数组赋值有三种方式: 第一种:用数组变量的名字后面跟一个中括号的方式赋值,当然,索引数组中,中括号内的键一定是整数。比如,$arr[0]='苹果'; 第二种:用array()创建一个空数组,使用=>符号来分隔键和值,左侧表示键,右侧表示值。当然,索引数组中,键一定是整数。比如,array('0'=>'苹果'); 第三种:用array()创建一个空数组,直接在数组里用英文的单引号'或者英文的双引号"赋值,数组会默认建立从0开始的整数的键。比如array('苹果');这个数组相当于array('0'=>'苹果');查看全部
-
$fruit = array("苹果","香蕉","菠萝"); 注意数组的键是从0开始的。可以使用print_r($fruit);语句输出数组键及对应的值。查看全部
-
haha查看全部
-
关于limit一般形式是 limit n,m,表示从结果中n行开始取,一共取m行; 注意其中n是从0开始,即第一行的n为0。 limit 后只有一个数字 例如limit a 是(从结果第一行开始)取a行,等价于limit 0,a查看全部
举报
0/150
提交
取消