PHP4与PHP3中两个不宽容难题的化解形式

by admin on 2020年1月3日

在 PHP5.0 以上版本里,还同盟了 4.0
版本的构造函数的概念法规。借使同期定义了4.0的构造函数和
__construct()函数,则__construct(卡塔尔国 函数优先。
为了使类代码同时宽容 PHP4.0 和 5.0,能够使用以下的章程:
复制代码 代码如下:
class MyClass {
 function __construct() { //for PHP5.0
  echo ‘this is class2 construct’;
 }
 // 为了使类代码同有时候宽容 PHP4.0 和 5.0
 function MyClass() { //for PHP4.0
  $this->__construct();
 }
}
$c3 = new MyClass;
?>

PHP4与PHP3中大略不包容的地点,但那第一是PHP4中的PHP.ini
中的设置某些分化之处,那一个改造主若是增加PHP4的功能。
当中的转移中,track_vars 的装置日常会是使旧的PHP3程序不能够
再运营了,因为在PHP4的扩展设置中把track_vars 的值设为了off
与上述同类旧的PHP3程序中就不可能一向用GET,POST,老董KIE从上页传送过来
的变量了。

在此几天温馨写的PHP小程序中相见了怎么着使用PHP结构函数的景色,在PHP中允许大家在一个类中定义多个构造函数
如:

我那边有一个轻易易行的消除的法子,不用把track_vars 的是设为on,
不过那只是三个活动办法,未来大家照旧用$HTTP_GET_VARS,  
$HTTP_POST_VARS and $HTTP_COOKIE_VATiguanS读取那一个变量相比较好。

<?php
class User
{
    public $name;

    function User()
    {
        $this->name="shaonian";
    }

    function Do()
    {
        $a=$this->name;
        //...
    }
}
?>

上面是三个简单的次序,我们能够加到各种需求读取GET,POST,经理KIE
的变量的页前,就能够直接引用那个变量了。

 

get.variable.inc.php

抑或接收最新的 __construct(卡塔尔,不论类名是何等,架构函数都为__construct()

<?
if(isset($HTTP_POST_VARS))
{
while ( list( $key, $val ) = each( $HTTP_POST_VARS ) )
{
$$key = $val;
}
}

<?php
class User
{
    public $name;

    function __construct()
    {
        $this->name="shaonian";
    }

    function Do()
    {
        $a=$this->name;
        //...
    }
}
?>

if(isset($HTTP_GET_VARS))
{
while ( list( $key, $val ) = each( $HTTP_GET_VARS ) )
{
$$key = $val;
}
}

瞩目
对类属性进行理并答复制和调用时,$符号一定要加载this前面,并非属性名前面。其余,PHP中的结构函数不会隐式调用父类的布局函数,假设要调用父类的构造函数,须求出示的调用parent::__construct(),如:

if(isset($HTTP_COOKIE_VARS))
{
while ( list( $key, $val ) = each( $HTTP_COOKIE_VARS ) )
{
$$key = $val;
}
}
?>  

<?php
class Person
{
    public $gender;
    function __construct()
    {
        $this->gender='male';
    }
}


class User extends Person
{
    public $name;

    function __construct()
    {
        parent::__construct();
        $this->name="shaonian";
    }

    function Do()
    {
        $a=$this->name;
        //...
    }
}
?>

请我们多多点拨!

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图