【问题标题】:How to make PHP code like this?如何制作这样的PHP代码?
【发布时间】:2010-11-30 05:40:11
【问题描述】:
$this->admin_model->list_user()

我大部分时间都在用 OOP PHP 编写程序。但是我是这样写的……

$this->hello_world().

上面的代码是 CodeIgniter,我认为 CakePHP 也遵循相同的编码风格。

请给我一个简单的例子,如何让我的“hello_world”喜欢

$this->something->hello_world().

提前谢谢你。

苏利亚

【问题讨论】:

  • @orokusaki 不复杂也不简单,只是我想知道它是如何工作的??
  • @orok 将对象作为属性的对象令人困惑?该死,我怎么没早点注意到呢‽ 现在我们都因为你不得不放弃OOP! (检查一下,这条评论中有一个询问。)
  • @orok 哦,孩子,我不会进入圣战格斗场。只要使用得当,objects->with->object->properties 没有任何问题。我同意“如果不需要”,但是从这个例子中你无法判断它是否需要。 (看看,嗯……斜体!)
  • @deceze - 你的意思是,“它 ﮟﮔfiﮐﭾﮯ 要说”。

标签: php cakephp codeigniter coding-style


【解决方案1】:

没什么特别的; $this->admin_model 是一个包含对象的属性,在所有用途上都等同于 $object->method();

一步一步看起来像:

$this->property = new MyObjectWIthADoItMethod();
$this->property->DoIt();

【讨论】:

    【解决方案2】:

    something 只是具有hello_world() 方法的类型的对象。

    所以:

    class Something
    {
        public function hello_world()
        {
            echo 'Hello, big world!';
            // Do work.
        }
    }
    
    class Program
    {
        private $something;
    
        public function Run()
        {
            $this->something = new Something();
            $this->something->hello_world()
        }
    }
    
    $program = new Program();
    $program->Run();
    

    【讨论】:

    • 致命错误:当不在 D:\wamp\www\madan\written\this\checkthis.php 的第 9 行的对象上下文中时使用 $this。它给出了这个错误,我做了同样的事情告诉。
    • @Surya 这显然是一个非常简洁的例子。 $this 行需要在某些对象方法中使用。
    • 给出此错误也无法正常工作。致命错误:在第 18 行调用 D:\wamp\www\madan\written\this\checkthis.php 中未定义的方法 Something::hello_word()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 2021-12-22
    • 2016-03-27
    • 1970-01-01
    相关资源
    最近更新 更多