【问题标题】:Using a class in PHP4 and i don't know how to set a method在 PHP4 中使用一个类,我不知道如何设置一个方法
【发布时间】:2011-04-02 14:35:44
【问题描述】:

在 PHP 5 中是

class Example {   
  private $foo = "old data";
  public function __construct(){}
  public function setVar($data){
      $this->foo = $data;
  }
  public function output(){
    return $this->foo;
  }
}
$var = new Example();
$var->setVar("new data");
echo $var->output();

我从来没有在 PHP 4 中学习过 OO,并且找不到在哪里执行此操作。使用我必须扩展的类。对此的任何搜索都向我展示了在 PHP5 中执行此操作的大量方法,但不是 4

谢谢

【问题讨论】:

    标签: php oop php4


    【解决方案1】:

    要使此代码与 PHP 4 兼容,您必须

    • 删除privatepublicprotected关键字

    • private $foo =更改为var $foo =

    • __construct()改成Example()(构造函数是一个以类名命名的方法)

    但更重要的是,你为什么需要这个? PHP 4 的时代已经结束。除了历史目的,应该不再需要新的 PHP 4 代码。如果您的网络主机仍在运行 PHP 4,请离开。

    【讨论】:

    • +1:这些是必要的确切更改。而且您确实添加了一个重要事实:应该只使用 php 5。确实,即使客户端请求 php 4,也强烈敦促他们升级到 php 5。php 4 已成为过去,专门为它开发只会给以后带来麻烦.
    • 你们都是对的。我正在使用 fpdf,它仍然在 PHP4 中。 :(
    • @Rick 我认为 fpdf 只是使用旧语法来向后兼容 PHP4。如果您已经在运行 PHP5 并且不关心与 PHP4 的兼容性,您也可以使用常规的 PHP5 语法。
    • @Gordon 谢谢,我也发现了。现在使用 PHP5 语法
    【解决方案2】:

    PHP Manual on Classes and Objects in PHP4Migrating from PHP 4 to PHP 5.0.x

    class Example
    {
      var $foo = "old data";
    
      function Example() {}
    
      function setVar($data){
          $this->foo = $data;
      }
    
      function output(){
        return $this->foo;
      }
    }
    
    $var = new Example();
    $var->setVar("new data");
    echo $var->output();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-15
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多