-
赋值相当于房间内容的复制,&引用相当于拿到一个房间的门牌号,“&”的意思就是:我是你的影子,我们共存亡 $james1 = $james; //传值,指向的是不同的内存,只是两块内存存的东西一样而已 $james2 = &$james; //传引用,取了个别名,所以指向的是同一块内存查看全部
-
对象的高级特性 对象比较,当同一个类的两个实例的所有属性都相等时,可以使用比较运算符==进行判断,当需要判断两个变量是否为同一个对象的引用时,可以使用全等运算符===进行判断。 class Car { } $a = new Car(); $b = new Car(); if ($a == $b) echo '=='; //true if ($a === $b) echo '==='; //false 对象复制,在一些特殊情况下,可以通过关键字clone来复制一个对象,这时__clone方法会被调用,通过这个魔术方法来设置属性的值。 class Car { public $name = 'car'; public function __clone() { $obj = new Car(); $obj->name = $this->name; } } $a = new Car(); $a->name = 'new car'; $b = clone $a; var_dump($b); 对象序列化,可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。 class Car { public $name = 'car'; } $a = new Car(); $str = serialize($a); //对象序列化成字符串 echo $str.'<br>'; $b = unserialize($str); //反序列化为对象 var_dump($b);查看全部
-
重载是指动态的创建属性和方法。 1、属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。 2、方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。查看全部
-
对象继承 继承是面向对象程序设计中常用的一个特性,汽车是一个比较大的类,我们也可以称之为基类,除此之外,汽车还分为卡车、轿车、东风、宝马等,因为这些子类具有很多相同的属性和方法,可以采用继承汽车类来共享这些属性与方法,实现代码的复用。查看全部
-
Static静态关键字 静态属性与方法可在不实例化类的情况下调用,直接使用类名::方法名的方式乾进行调用。静态属性不允许对象使用->操作符调用。 静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。查看全部
-
1.protected 被其自身以及其子类和父类访问。 2.private 只能被其定义所在的类访问。 3.为兼容PHP5以前的版本,如果采用 var 定义,则被视为公有。 4.属性必须定义访问控制,方法不定义默认为 public 5.如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化 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(); //通过静态方法来获得一个实例查看全部
-
1.构造函数: __construct(); 2.析构函数: __destruct(); 当对象被设置成Null时,自动调用对象的析构函数查看全部
-
跟绘制线条类似,首先需要新建一个图片与初始化颜色。 $img = imagecreatetruecolor(100, 100); $red = imagecolorallocate($img, 0xFF, 0x00, 0x00); 然后使用imagestring函数来进行文字的绘制,这个函数的参数很多:imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col ),可以通过$font来设置字体的大小,x,y设置文字显示的位置,$s是要绘制的文字,$col是文字的颜色。 imagestring($img, 5, 0, 0, "Hello world", $red); header("content-type: image/png"); imagepng($img); imagedestroy($img);查看全部
-
绘制线条 要对图形进行操作,首先要新建一个画布,通过imagecreatetruecolor函数可以创建一个真彩色的空白图片: $img = imagecreatetruecolor(100, 100); GD库中对于画笔所用的颜色,需要通过imagecolorallocate函数进行分配,通过参数设定RGB的颜色值来确定画笔的颜色: $red = imagecolorallocate($img, 0xFF, 0x00, 0x00); 然后我们通过调用绘制线段函数imageline进行线条的绘制,通过指定起点跟终点来最终得到线条。 imageline($img, 0, 0, 100, 100, $red); 线条绘制好以后,通过header与imagepng进行图像的输出。 header("content-type: image/png"); imagepng($img); 最后可以调用imagedestroy释放该图片占用的内存。 imagedestroy($img); 通过上面的步骤,可以发现PHP绘制图形非常的简单,但很多时候我们不只是需要输出图片,可能我们还需要得到一个图片文件,可以通过imagepng函数指定文件名将绘制后的图像保存到文件中。 imagepng($img, 'img.png');查看全部
-
GD指的是Graphic Device,PHP的GD库是用来处理图形的扩展库,通过GD库提供的一系列API,可以对图像进行处理或者直接生成新的图片。 PHP除了能进行文本处理以外,通过GD库,可以对JPG、PNG、GIF、SWF等图片进行处理。GD库常用在图片加水印,验证码生成等方面。 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);查看全部
-
gmdate 函数能格式化一个GMT的日期和时间,返回的是格林威治标准时(GMT)。 举个例子,我们现在所在的中国时区是东八区,领先格林威治时间8个小时,有时候也叫GMT+8,那么服务器运行以下脚本返回的时间应该是这样的: 当前时间假定是2014-05-01 15:15:22 echo date('Y-m-d H:i:s', time()); //输出为:2014-05-01 15:15:22 echo gmdate('Y-m-d H:i:s', time()); //输出为:2014-05-01 07:15:22 因为格林威治时间是现在中国时区的时间减去8个小时,所以相对于现在时间要少8个小时查看全部
-
函数说明:strtotime(要解析的时间字符串, 计算返回值的时间戳【默认是当前的时间,可选】) 返回值:成功则返回时间戳,否则返回 FALSE 比如 echo strtotime("now");//相当于将英文单词now直接等于现在的日期和时间,并把这个日期时间转化为unix时间戳。这个效果跟echo time();一样。 echo strtotime("+1 seconds");//相当于将现在的日期和时间加上了1秒,并把这个日期时间转化为unix时间戳。这个效果跟echo time()+1;一样。 echo strtotime("+1 day");//相当于将现在的日期和时间加上了1天。 echo strtotime("+1 week");//相当于将现在的日期和时间加上了1周。 echo strtotime("+1 week 3 days 7 hours 5 seconds");//相当于将现在的日期和时间加上了1周3天7小时5秒。查看全部
-
PHP提供了内置函数strtotime实现功能:获取某个日期的时间戳,或获取某个时间的时间戳。例如: echo strtotime('2014-04-29');//1398700800,这个数字表示从1970年1月1日 00:00:00 到2014年4月29号经历了1398700800秒 echo strtotime('2014-04-29 00:00:01');//1398700801,这个数字表示从1970年1月1日 00:00:00 到2014-04-29 00:00:01时经历了1398700801秒 大家发现上面的规律了吗,其实strtotime('2014-04-29')相当于strtotime('2014-04-29 00:00:00')查看全部
-
正则表达式中具有特殊含义的字符称之为元字符,常用的元字符有: \ 一般用于转义字符 ^ 断言目标的开始位置(或在多行模式下是行首) $ 断言目标的结束位置(或在多行模式下是行尾) . 匹配除换行符外的任何字符(默认) [ 开始字符类定义 ] 结束字符类定义 | 开始一个可选分支 ( 子组的开始标记 ) 子组的结束标记 ? 作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。 (查阅量词) * 量词,0 次或多次匹配 + 量词,1 次或多次匹配 { 自定义量词开始标记 } 自定义量词结束标记 //下面的\s匹配任意的空白符,包括空格,制表符,换行符。[^\s]代表非空白符。[^\s]+表示一次或多次匹配非空白符。 $p = '/^我[^\s]+(苹果|香蕉)$/'; $str = "我喜欢吃苹果"; if (preg_match($p, $str)) { echo '匹配成功'; } 元字符具有两种使用场景,一种是可以在任何地方都能使用,另一种是只能在方括号内使用,在方括号内使用的有: \ 转义字符 ^ 仅在作为第一个字符(方括号内)时,表明字符类取反 - 标记字符范围 其中^在反括号外面,表示断言目标的开始位置,但在方括号内部则代表字符类取反,方括号内的减号-可以标记字符范围,例如0-9表示0到9之间的所有数字。 //下面的\w匹配字母或数字或下划线。 $p = '/[\w\.\-]+@[a-z0-9\-]+\.(com|cn)/'; $str = "我的邮箱是Spark.eric@imooc.com"; preg_match($p, $str, $match); echo $match[0];查看全部
-
取得当前的日期 php内置了date()函数,来取得当前的日期。 函数说明:date(时间戳的格式, 规定时间戳【默认是当前的日期和时间,可选】) 返回值:函数日期和时间 例子: //date函数,第二个参数取默认值的情况 echo date("Y-m-d");//2014-03-30 //date函数,第二个参数有值的情况 echo date("Y-m-d",'1396193923');//2014-03-30,1396193923表示2014-03-30的unix时间戳查看全部
举报
0/150
提交
取消