摘要:今天一个网友在群里发了个题目不难,但是可能会错$a=2;echo $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : $a == 4 ? 'foura' : 'other';echo "\n";输出结果是:结果是:four一开始想不明白,按照我的理解,应该是这样的逻辑:echo ($a == 1 ? 'one' : ( $a == 2 ? 'two' : ( $a == 3 ? 'three
阅读全文
摘要:第1题:PHP中&、global、$GLOBALS$var1=1;$var2=2;function test(){ global $var1,$var2;//引用两个全局变量,并不是直接拿两个全局变量本身来用。 $var1=3;//将引用过来的两个全局变量赋值为3。 $var2=3; echo $var1; echo $var2;}test();//执行方法,$var1、$var2分别输出为3。echo $var1;//这里输出的是顶部定义的两个全局变量,他们输出也为3,因为引用变化是双向的(在函数内部已经通过引用方式将两个全局变量赋值为3,所以外部全局变量会改变...
阅读全文
摘要:运行config的时候,如果cwebapplication定义有public的属性,比如basePath,则不用调用魔术函数__setapplication=》run processrequest || runController|| || ||createController $controller->init(); $controller->run($actionID); || framework/web/CController的run =》runActionWithFilters组件是先注册,待需要用到时候在新建,初始化;比如loginForm.php中的login()Yii
阅读全文
摘要:使用yii框架的url路径一般形如hostname/?r=xxxx/xxxx/xxxx&sdfs=dsfdsf我们可以看到有时会使用protected目录下的controller,有时会使用module中controller,具体是如何处理的呢,请看如下的分析:以下代码摘自yii框架核心代码%Yiiroot%/framework/web/CWebApplication.php=================================================================================================//1.runCon
阅读全文
摘要:CComponent源码分析//所有部件的基类class CComponent{private $_e;private $_m;//获取部件属性、事件和行为的magic methodpublic function __get($name){ $getter='get'.$name; //是否存在属性的get方法 if(method_exists($this,$getter)) return $this->$getter(); //以on开头,获取事件处理句柄 else if(strncasecmp($name,'on',2)===0 &&
阅读全文
摘要:通常的默认启动脚本: <code> Yii::createWebApplication(Ugc::loadConfig('base'))->run(); </code> 其执行以及CWebApplication::run()方法源码如下: CWebApplication::run(); <code> /** * Runs the application. * This method loads static application components. Derived classes usually overrides this *
阅读全文
摘要:声明验证规则 一旦用户提交了他的输入,模型被填充,我们就需要在使用前确保用户的输入是有效的。 这是通过将用户的输入和一系列规则执行验证实现的。我们在 rules() 方法中指定这些验证规则, 此方法应返回一个规则配置数组。class LoginForm extends CFormModel{ public $username; public $password; public $rememberMe=false; private $_identity; public function rules() { return array( array('username, password
阅读全文
摘要:魔术函数 1。__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。 2。__destruct() 当删除一个对象或对象操作终止时被调用。 3。__call() 对象调用某个方法, 若方法存在,则直接调用; 若不存在,则会去调用__call函数。 4。__get() 读取一个对象的属性时, 若属性存在,则直接返回属性值; 若不存在,则会调用__get函数。 5。__set() 设置一个对象的属性时, 若属性存在,则直接赋值; 若不存在,则会调用__set函数。 6。__toString() 打
阅读全文
摘要:class aa{ function m1() { echo "m1 runned in aa"."<br/>"; $this->m2(); } function m2() { echo "m2 runned in aa"."<br/>"; }}class bb extends aa{ function m2() { echo "m2 runned in bb"."<br/>"; } }$a=new bb();$a->m1();
阅读全文
摘要:程序执行流程跟踪:1 index.php Yii::createWebApplication($config)->run(); //step 1 tracestep2 yii/framework/yiibase.php public static function createApplication($class,$config=null) { return new $class($config);//$class="CWebApplication"; }3 yii/framework/web/CWebApplication.php class CWebApplica
阅读全文
摘要:gettype: 取得变量的类型。 intval: 变量转成整数类型。 doubleval: 变量转成倍浮点数类型。 empty: 判断变量是否已配置。 is_array: 判断变量类型是否为数组类型。 is_double: 判断变量类型是否为倍浮点数类型。 is_float: 判断变量类型是否为浮点数类型。 is_int: 判断变量类型是否为整数类型。 is_integer: 判断变量类型是否为长整数类型。 is_long: 判断变量类型是否为长整数类型。 is_object: 判断变量类型是否为类类型。 is_real: 判断变量类型是否为实数类型。 is_string: 判断变量类型是否
阅读全文
摘要:/*** @name 名字* @abstract 申明变量/类/方法* @access 指明这个变量、类、函数/方法的存取权限* @author 函数作者的名字和邮箱地址* @category 组织packages* @copyright 指明版权信息* @const 指明常量* @deprecate 指明不推荐或者是废弃的信息* @example 示例* @exclude 指明当前的注释将不进行分析,不出现在文挡中* @final 指明这是一个最终的类、方法、属性,禁止派生、修改。* @global 指明在此函数中引用的全局变量* @include 指明包含的文件的信息* @link 定义在
阅读全文
摘要:用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引 号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函 数加上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、$row[’id’] 的速度是$row[id]的7倍。3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。4、在执行for循环之前确定最大循环数,不要每
阅读全文
摘要:ob_flush/flush在手册中的描述, 都是刷新输出缓冲区, 并且还需要配套使用, 所以会导致很多人迷惑…其实, 他们俩的操作对象不同, 有些情况下, flush根本不做什么事情..ob_*系列函数, 是操作PHP本身的输出缓冲区.所以, ob_flush是刷新PHP自身的缓冲区.而flush, 严格来讲, 这个只有在PHP做为apache的Module(handler或者filter)安装的时候, 才有实际作用. 它是刷新WebServer(可以认为特指apache)的缓冲区.在apache module的sapi下, flush会通过调用sapi_module的flush成员函数指针
阅读全文
摘要:ob为output bufferob_start() 开启缓冲池ob_clean() 清除缓冲池ob_deflatehandler() Deflate output handler and can only be used onceob_end_clean() 清除缓冲池并关闭该缓冲池ob_flush() 发送缓冲池内容,清空缓冲池ob_get_clean() 提取当前缓冲池内容,并删除该缓冲池,相当于同时执行ob_get_contents() and ob_end_clean(). ob_get_contents() 返回当前缓冲池的内容ob_get_flush() 发送缓冲池内容,并关闭缓
阅读全文
摘要:好记性比不过乱笔头,记录成长路上的小问题。1print <<<EOF 中的数组输出今天在做php168二次开发中用到html模板的print <<<EOF,发现一个问题。$s=array();$s['id']="test";print <<<EOF$s[‘id’];EOF运行出错!改为print <<<EOF$s[id];EOF输出test不是数组的key用‘’包含起来好点的吗,怎么用了还出错。搞不明白二、PHP大小写敏感规则 1、 大小写敏感 a、 变量名区分大小写 b、 常量名默认区
阅读全文
摘要:yuminstallzlib-developenssl-devel一.下载Apache:http://labs.renren.com/apache-mirror//httpd/httpd-2.2.17.tar.gz下载mysql:http://download.freelamp.com/LAMP/mysql-5.0.41.tar.gz下载php:http://cn.php.net/distributions/php-5.2.14.tar.gz下载ncurses:http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz下载jpeg6:http:/
阅读全文
摘要://默认加入群组if($_SGLOBAL['supe_uid']){ $sql = "SELECT * FROM ".tname('mtag')." WHERE tagid=18"; //这个ID需要你修改成自己的默认群组的ID $query = $_SGLOBAL['db']->query($sql); $rs=($_SGLOBAL['db']->fetch_array($query)); if($rs) { //如果有该群组 $tagid = $rs['tagid
阅读全文
摘要:php中截取浮点型大致有下面几种方法:1 float round ( float $val [, int $precision ] ) 返回将 val 根据指定精度 precision (十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。 echo round(4.3) //42 string sprintf ( string $format [, mixed $args [, mixed $... ]] ) 返回格式化数据的字符串$a=12.338938438;echo sprintf("%.5f",$a) //结果:12.33
阅读全文