【探讨PHP中OO之静态关键字以及类常量的详解】教程文章相关的互联网学习教程文章

PHP面向对象之后期静态绑定功能介绍

本文将对PHP后期静态绑定功能进行介绍,它主要用于解决在继承范围内引用静态调用的类。首先来看下面这个例子:class Person {public static function status(){self::getStatus();}protected static function getStatus(){echo "Person is alive";}}class Deceased extends Person {protected static function getStatus(){echo "Person is deceased";}}Deceased::status(); //Person is alive很明显,结果不是我们预期的,这是因为...

简单谈谈php延迟静态绑定

使用场景先来观察以下代码:abstract class base {//do sth } class aClass extends base{public static function create(){return new aClass();} } class bClass extends base{public static function create(){return new bClass();} } var_dump(aClass::create()); var_dump(bClass::create());输出:object(aClass)#1 (0) { } object(bClass)#1 (0) { }以上aClass和bClass继承于base这个抽象类,但是在两个子类中同时实现了cr...

PHP延迟静态绑定示例分享

没怎么用过这个新特性,其实也不算新啦,试试吧,现在静态类的继承很方便了<?php class A {protected static $def = 123456;public static function test() {echo get_class(new static);}public static function test2() {echo static::$def;} }class B extends A {protected static $def = 456789; }class C extends A {protected static $def = abcdef; }echo B::test(); echo <br>; echo C::test(); echo <br>; echo B::test2(...

php延迟静态绑定实例分析

本文实例讲述了php延迟静态绑定的方法。分享给大家供大家参考。具体分析如下:php延迟静态绑定:指类的self,不是以定义时为准,而是以计算时的运行结果为准。先看一个实例<?php header("content-type:text/html;charset=utf-8"); class Human{public static function hei(){echo "我是父类的hei()方法";}public function say(){//如果子类调用父类的say()方法,则self::hei();//这里调用的是父类的hei()方法static::hei(); //这里...

PHPStatic延迟静态绑定用法分析

本文实例讲述了PHP Static延迟静态绑定用法。分享给大家供大家参考,具体如下:PHP5.3以后引入了延迟静态绑定static,它是为了解决什么问题呢?php的继承模型中有一个存在已久的问题,那就是在父类中引用扩展类的最终状态比较困难。来看一个例子。class A { public static function echoClass(){ echo __CLASS__; }public static function test(){ self::echoClass(); } } class B extends A { public static function ech...

利用PHP生成静态html页面的原理【图】

前言如果每次用户点击动态链接的时候都会对服务器发送数据查询的要求,对于一个访问量可能达百万千万级别的网站来说 这无疑是服务器一个大大的负担,所以把动态数据转换成静态html页面就成了节省人力物力的首选因为此前没有相应的经验,所以这篇文章和大家分享利用PHP生成静态html页面的原理和方法,有需要的可以一起来看看。一、思路分析其实,实现静态页面生成功能的原理很简单,主要利用几个常见的PHP文件操作函数对文件进行操作...

PHP生成HTML静态页面实例代码

为cd2sc.com网站功能而开发,代码为本人原创,生成速度一般。 (出于众所周知的原因,涉及到数据库的数据字段名称做了改动,并且为了代码明晰去掉了参数过滤的部分) 说明:原动态地址为 moban.php?id=1 ,生成后地址为 html/200808/sell_1.html 。page.php为分页程序,本博客中有发布。 页面使用方式,将本代码保存为make.php,使用方法为浏览器访问 make.php?t=数量&pg=页面;例如 make.php?t=300&pg=2,即每次生成300条数据,从...

采用thinkphp自带方法生成静态html文件详解

thinkphp本身自带了一个有效的生成静态页的方法,(该方法在tp2.0的手册上有说明,3.0的手册上没有说明了,不过3.0方法还是存在的。)$this->buildHtml(静态文件, 静态路径,模板文件);稍微说明下参数,有些朋友问我这个参数和具体如何使用。参数一:静态文件,是指生成后的静态文件名,文件保存路径完整的就是:静态路径/静态文件。例如静态文件设置a/index.那么保存的路径就是项目路径/Html/a/index.html(默认的静态路径在项目路径的...

PHP批量生成静态HTML的简单原理和方法【图】

现在的CMS基本上都支持文章生成HTML,生成HTML静态网页的好处就不用多说了吧,无论是页面打开的浏览速度,还是有利于搜索引擎优化SEO,都有明显的提高,有时候网页中有或多或少的漏洞,把PHP转换成HTML格式也有力地保护了网站。PHP生成HTML的技术要比ASP的技术相对来说要简单一点,下面简要说一下怎样用PHP批量生成HTML技术吧,先看一下面源码:<?php if($_POST[button]){ $sql="select * from doorsjk_about where id<12"; ...

详谈php静态方法及普通方法的区别

如下所示:<?php header(content-type:text/html;charset=utf-8); /* 普通方法,存放类内,只有一份静态方法,也是存放于类内,只有一份区别在于:普通方法需要对象去调用,需要绑定$this 即,普通方法,必须要有对象,然后让对象来调用而静态方法,不属于哪一个对象,因此不需要绑定$this 即,不需要对象也可以调用 */class Human{static public $head=1;public function easyeat(){echo 普通方法吃饭<br />;}static public funct...

浅谈PHP中静态方法和非静态方法的相互调用

在PHP的非静态方法中可以调用静态方法class test{public static function strPrint(){echo this is strPrint static function<br>;}public function staticFuncInvoke(){self::strPrint();} }$test = new test();$test->staticFuncInvoke(); 上面的代码会输出: this is strPrint static function.而下面的代码会直接挂掉,php直接给出fatal error:Fatal error: Using $this when not in object context in E:\htdocs\test\conte...

php递归,静态变量,匿名函数使用

<!doctype html> <html> <head><meta charset="utf-8"><title>Current To-Do List</title> </head> <body> <?phpfunction make_list($parent) {global $tasks;echo <ol>;foreach($parent as $task_id => $todo) {echo "<li>$todo";if (isset($tasks[$task_id])) { // 如果当前id有子任务则递归创建菜单make_list($tasks[$task_id]);}echo "</li>";}echo </ol>;}$db = mysqli_connect(192.168.31.172 ,root, root, phpadvanced);mys...

PHP生成静态网页的方法

一,PHP脚本与动态页面。   PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合,也可以类,函数封装等形式,以模板的方式对用户请求进行处理。无论以何种方式,它的基本原理是这样的。由客户端提出请求,请求某一页面 -----> WEB服务器引入指定相应脚本进行处理 -----> 脚本被载入服务器 -----> 由服务器指定的PHP解析器对脚本进行解析形成HTML语言形式 ----> 将解析后的HTML语句以包的方式传回给浏览器。...

模型里面的方法写成静态的好,还说普通方法好

现在看到很多框架里面在模型里面写的方法是静态方法,在控制器调用的时候,直接使用不需要实例化类,再调用,如何去区分使用类静态方法,还是对象方法好回复内容:现在看到很多框架里面在模型里面写的方法是静态方法,在控制器调用的时候,直接使用不需要实例化类,再调用,如何去区分使用类静态方法,还是对象方法好这个得看你的方法是什么类型的,比如你的方法是操作的是跟类实例无关的,这个时候就可以设置为静态方法了。比如一...

CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)_php实例【图】

本文实例总结了CI框架常用经典操作类。分享给大家供大家参考,具体如下: 1. 超级对象中的URI CI_URI类的解析url的相关信息 直接使用$this->uri可以使用它的相关属性 system/core/URI.php文件中 部分常用属性: (1) 分段获取url相关信息 $this->uri->segment(4); //获取url中pathinfo //的第四段的值入口文件.php/控制器/动作/参数1/参数2/... (2) 通过方法中的形参传参 需要设默认值和顺序要注意 index.php/user/index/3/zhangsan...