php的笑话篇一:PHP 中的 9 个魔术方法
PHP 中的 9 个魔术方法
这个标题有点牵强因为php有不只9种魔术方法, 但是这些将会引导你使用php魔术方法一个好的开始。它可能魔幻,但是并不需要魔杖。
这些'魔术'方法拥有者特殊的名字,以两个下划线开始,表示这些方法在php特定事件下将会被触发。这可能听起来有点自动魔法但是它真的很酷的,我们已经看过一个简单的例子在 last post,即我们使用一个构造器-使用这个作为我们第一个例子
__construct
构造器是一个魔术方法,当对象被实例化时它会被调用。在一个类声明时它常常是第一件做的事但是没得必要他也像其他任何方法在类中任何地方都可以声明,构造器也能像其他方法样继承。如果我们想到以前继承例子从介绍到oop,我们能添加构造方法到Animal 类中,如: 1 class Animal{
2
3public function __construct() {
4 $this->created = time();
5 $this->logfile_handle = fopen('/tmp/log.txt', 'w');
6}
7
8 }
现在我们创建一个类来继承Animal类 - Penguin类!不添加任何属性和方法在Penguin类中,我们能申明并定义它继承自Animal类,如: 1 class Penguin extends Animal {
2
3 }
4
5 $tux = new Penguin;
6 echo $tux->created;
如果我们定义一个构造方法在Penguin类中,然后Penguin对象将会运行当它被实例化后。由于并没有构造方法,PHP 会参考父类方法定义 信息来使用它因此我们能覆盖父类方法,或者不,在我们的新类中-很便利。 __destruct
你发现文件句柄也是构造器一部分吗?当我们使用完一个对象时真不想把事情放一边,因此析构方法做着与构造方法相反的事情。当对象被销毁时,析构方法会运行,或者明确的说当我们不再使用它时,php会为我们清理掉。Animal类中,我们的析构方法像这样,如:
01 class Animal{
02
03public function __construct() {
04 $this->created = time();
05 $this->logfile_handle = fopen('/tmp/log.txt', 'w');
06}
07
08public function __destruct() {
09 fclose($this->logfile_handle);
10}
11 }
析构器让我们关闭任何额外的资源比如被使用过的对象。在php中由于我们有这样运行时间短的脚本(留意在更新的php版本中增强的垃圾回收机制),通常讨论内存溢出根本不需要。然而它仍是好的推行方法来清理而且总体上让程序运行起来更高效。
__get
这个魔术方法是一个非常灵巧的小技巧 - 它使实际上不存在的属性如同存在一半。让我们举个小企鹅的例子:
01 class Penguin extends Animal {
02
03public function __construct($id) {
04 $this->getPenguinFromDb($id);
05}
06
07public function getPenguinFromDb($id) {
08 // elegant and robust database code goes here
09}
10 }
现在,如果我们的小企鹅有一个 "name" 属性,而在此之后加载的属性为 "age",那么我们可以这样处理:
1 $tux = new Penguin(3);
php的笑话篇二:PHP学习文档
PHP 简介http://phalanger.codeplex.com /1.什么是 PHP? ?PHP 指 PHP:超文本预处理器(译者注:PHP: Hypertext Preprocessor, 递归命名)? PHP是一种服务器端的脚本语言,类似 ASP ? PHP 脚本在服务器上执行 ? PHP 支持很多数据库(MySQL、Informix、Oracle、Sybase、Solid、 PostgreSQL、Generic ODBC 等等) ? PHP 是一个开源的软件(open source software,OSS)2.文件? 什么是 PHP 文件?PHP 文件可包含文本、HTML 标签以及脚本 PHP 文件向浏览器返回纯粹的 HTML PHP 文件的文件后缀是 ".php"、".php3" 或 ".phtml"3、什么是 MySQL? 、 ?? MySQL 是一种数据库服务器 ? MySQL 支持标准的 SQL ? MySQL 可在许多平台上编译4、PHP+MySQL 、PHP 与 MySQL 的组合是跨平台的 (意思是您可以在 Windows 环境进行开发, 而在 Unix 平台上提供 服务)5、为什么要使用 PHP? 、 ?? PHP 可在不同的平台上运行(Windows、Linux、Unix) ? PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等)
? PHP 易于学习,并可高效地运行在服务器端6、基本的 PHP 语法 、<?php ?> PHP 的脚本块以 <?php 开始,以 ?> 结束。您可以把 PHP 的脚本块放置在文档中的任何位置。当然,在支持简写的服务器上,您可以使用 <? 和 ?> 来开始和结束脚本块。7、实例用 php 输出文本,PHP 、文件通常会包含 HTML 标签,就像一个 HTML 文件,以及一些 PHP脚本代码。在下面,我们提供了一段简单的 PHP 脚本,它可以向浏览器输出文本 "Hello World":有两种通过 PHP 来输出文本的基础指令:echo 和 print。在上面的例子中,我们使用了 echo 语句 来输出文本 "Hello World"。<html> <body><?php echo "Hello World"; ?></body> </html>8、在 PHP 中,我们使用 // 来编写单行注释,或者使用 /* 和 */ 来编写大的注释块。9、PHP 中的变量 、变量用于存储值,比如数字、文本字符串或数组。一旦设置了某个变量,我们就可以在脚本中重复地使用它。PHP 中的所有变量都是以 $ 符号开始的。
在 PHP 中设置变量的正确方法是:$var_name = value;PHP 的入门者往往会忘记在变量的前面的 $ 符号。如果那样做的话,变量将是无效的。让我们试着创建一个存有字符串的变量,和一个存有数值的变量:<?php $txt = "Hello World!"; $number = 16; ?>10、PHP 是一门松散类型的语言(Loosely Typed Language) 、 是一门松散类型的语言( )在 PHP 中,不需要在设置变量之前声明该变量。在上面的例子中,您看到了,不必向 PHP 声明该变量的数据类型。根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型。在强类型的编程语言中,您必须在使用前声明变量的类型和名称。在 PHP 中,变量会在使用时被自动声明。11、变量的命名规则 、变量的命名规则? 变量名必须以字母或下划线 "_" 开头。 ? 变量名只能包含字母数字字符以及下划线。 ? 变量名不能包含空格。如果变量名由多个单词组成,那么应该使用下划线进行分隔(比如$my_string),或者以大写字母开头(比如 $myString)。12、PHP 中的字符串 、字符串变量用于包含字符串的值。在本教程中,我们打算介绍几个在 PHP 中用于操作字符串的最常用的函数和运算符。在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把它存储在变量 中。
13、并置运算符(Concatenation Operator) 、并置运算符( )在 PHP 中,只有一个字符串运算符。并置运算符 (.) 用于把两个字符串值连接起来。要把两个变量连接在一起,请使用这个点运算符 (.) :14、使用 strlen() 函数 、strlen() 函数用于计算字符串的长度。让我们算出字符串 "Hello world!" 的长度:字符串的长度信息常常用在循环或 其他函数中,因为那时确定字符串何时结束是很重要的(例如,在循环中,我们 需要在字符串中的最后一个字符之后结束循环)。<?php echo strlen("Hello world!"); ?>15、使用 strpos() 函数 、strpos() 函数用于在字符串内检索一段字符串或一个字符。如果在字符串中找到匹配,该函数会返回第一个匹配的位置。如果未找到匹配,则返回 FALSE。让我们试一下,是不是能在字符串中找到子字符串 "world":<?php echo strpos("Hello world!","world"); ?>以上代码的输出是:6正如您看到的,在我们的字符串中,字符串 "world" 的位置是 6。返回 6 而不是 7,是由于字符串中的 首个位置的 0,而不是 1。
16、运算符说明例子结果+Additionx=2 x+24-Subtractionx=2 5-x3*Multiplicationx=4 x*520/Division15/5 5/23 2.5%Modulus (division remainder)5%2 10%8 10%21 2 0++Incrementx=5 x++x=6--Decrementx=5 x--x=4赋值运算符运算符说明例子=x=yx=y+=x+=yx=x+y-=x-=yx=x-y*=x*=yx=x*y/=x/=yx=x/y
php的笑话篇三:php倒计时代码分享
Date_default_timezone_set("Asia/Shanghai");
$time11=mktime(0,0,0,10,1,2014);
$time_now=time();
$d =floor(($time11-$time_now)/24/60/60);
$h =floor(($time11-$time_now-$d*24*60*60)/60/60);
$f =floor(($time11-$time_now-$d*24*60*60-$h*60*60)/60); $s =floor($time11-$time_now-$d*24*60*60-$h*60*60-$f*60); echo "距离十一的剩余时间:".$d."天".$h."小时".$f."分".$s."秒";
function compDate($Date_1,$Date_2){
$Date_List_1=explode("-",$Date_1);
$Date_List_2=explode("-",$Date_2);
$d1=mktime(0,0,0,$Date_List_1[1],$Date_List_1[2],$Date_List_1[0]); $d2=mktime(0,0,0,$Date_List_2[1],$Date_List_2[2],$Date_List_2[0]); $Days=round(($d1-$d2)/3600/24);
return $Days;
}
$today=date("Y-m-d H:i:s");
$day="2014-10-01 00:00:00";
$days=compDate($day,$today);
echo $days;