相关疑难解决方法(0)

新的自我与新的静态

我正在转换PHP 5.3库以在PHP 5.2上工作.支持我的主要方法是使用后期静态绑定return new static($options);,如果我将其转换为return new self($options)将得到相同的结果?

new self和之间有什么区别new static

php static late-static-binding

483
推荐指数
3
解决办法
19万
查看次数

在类中调用静态方法?

我如何从同一个类中的另一个方法调用静态方法?

$this->staticMethod();
Run Code Online (Sandbox Code Playgroud)

要么

$this::staticMethod();
Run Code Online (Sandbox Code Playgroud)

php

157
推荐指数
3
解决办法
10万
查看次数

什么是新的自我(); 用PHP表示?

我从未见过像这样的代码:

public static function getInstance()
{
    if ( ! isset(self::$_instance)) {
        self::$_instance = new self();
    }
    return self::$_instance;
}
Run Code Online (Sandbox Code Playgroud)

它是一样的new className()吗?

编辑

如果该类是继承的,它指向哪个类?

php class self

104
推荐指数
3
解决办法
8万
查看次数

什么是PHP类?

我从一本书中了解PHP类的严重问题.他们似乎很难.他们的目的是什么?他们如何运作?

php class

68
推荐指数
2
解决办法
5万
查看次数

这意味着什么在PHP中意味着什么?

可能重复:
PHP:self vs this

您好,能帮我理解PHP变量名的含义$this吗?

谢谢您的帮助.

php oop this keyword

10
推荐指数
1
解决办法
3万
查看次数

从PHP中的其他成员函数调用成员函数?

我对这段代码中显示的情况感到有点困惑......

class DirEnt
{
    public function PopulateDirectory($path)
    {
        /*... code ...*/

        while ($file = readdir($folder))
        {
            is_dir($file) ? $dtype = DType::Folder : $dtype = Dtype::File;                       
            $this->push_back(new SomeClass($file, $dtype));
        }

        /*... code ...*/
    }

    //Element inserter.
    public function push_back($element)
    {
        //Insert the element.
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么我需要使用$this->push_back(new SomeClass($file, $dtype))self::push_back(new SomeClass($file, $dtype))调用成员函数push_back?我似乎无法push_back(new SomeClass($file, $dtype))像我期望的那样访问它.我读过什么时候使用自我超过$ this?但它没有回答为什么我需要其中一个(或者如果我一直这样做,也许我搞砸了别的东西).

当成员是非静态成员并且在同一个类中时,为什么需要此规范?不应该从同一个类中的其他成员函数中看到并知道所有成员函数吗?

PS:它可以很好地工作$this->,self::但是当电话中没有这些功能时,这些功能都是未知的push_back.

php methods

9
推荐指数
2
解决办法
6006
查看次数

$ PHP的范围在PHP中是否是一个漏洞或功能?

我有这个代码:

    class a(){
      function b(){
         if(isset($this){
            echo 'instance! ';
            echo get_class($this);
         }else{
            echo 'static';
         }
      }
    }


class C{
  public function test(){
      a::b();
  }
}

$CC=new C;
$CC->test();
Run Code Online (Sandbox Code Playgroud)

这将是回声

实例C.

php oop

8
推荐指数
1
解决办法
148
查看次数

PHP:对象分配给静态属性,这是非法的吗?

将某些对象分配给静态属性是非法的吗?

我在下面的代码中收到HTTP 500错误.

require_once('class.linkedlist.php');

class SinglyLinkedlistTester {
    public static $ll = new Linklist();
}
Run Code Online (Sandbox Code Playgroud)

HTTP错误500(内部服务器错误):服务器尝试完成请求时遇到意外情况.

注意:非对象如string,int赋值给静态变量没有问题.举个例子,

public static $ll = 5; //no issue
Run Code Online (Sandbox Code Playgroud)

class.linkedlist.php中也没有代码问题.

php oop

7
推荐指数
2
解决办法
4969
查看次数

调用未定义的函数:Laravel 5.1

我在Controller中有一个私有函数,如下所示.

private function GetProjects($ProjectStatus) {
    return \App\Models\Project\Project_Model
            ::where('ProjectStatusID', $ProjectStatus)
            ->where('WhoCreatedTheProject', auth()->user()->UserID)->get();
}
Run Code Online (Sandbox Code Playgroud)

下面是使用此私有函数的操作方法.

public function ClientCancelledProjects() {
    $ProjectStatus = \App\Enumeration\Project\ProjectStatus::Cancelled;         
    $MyProjects = GetProjects($ProjectStatus);
    return view("Project.Client.MyProject", array("Projects" => $MyProjects));
}
Run Code Online (Sandbox Code Playgroud)

以下是运行控制器时出现的错误.

调用未定义的函数App\Http\Controllers\Project\GetProjects()

有人知道为什么会这样吗?我试图重用一些代码行,因为它们在Controller中被多次写入.

php laravel-5 laravel-5.1

7
推荐指数
2
解决办法
2万
查看次数

引用 const 变量时,哪个是最好的 $this 或 self 或 static?

我了解到静态self更好,因为 self 进行后期静态绑定。

但我想知道哪个最适合引用const变量。

class Black
{
    const color = 'black';

    public function byThis()
    {
        return $this::color;
    }

    public function bySelf()
    {
        return self::color;
    }

    public function byStatic()
    {
        return static::color;
    }
}
Run Code Online (Sandbox Code Playgroud)

我检查了所有三个吸气剂都运行良好。哪个是最好的选择?(我使用 PHP 7.0)

php static constants this self

5
推荐指数
2
解决办法
1859
查看次数