草庐IT

Instantiation

全部标签

php - 实例化 DateTime PhP 对象后无法立即应用函数

我尝试使用DateTime::提取字符串日期的年份.我不明白为什么DateTime的以下实例化会引发错误:$myDate="2015-09-10";$year_myDate=newDateTime($myDate)->format("Y");知道这个确实有效:$myDate="2015-09-10";$dateTime_myDate=newDateTime($myDate);$year_myDate=$dateTime_myDate->format("Y");对象不会返回它自己的一个实例吗?那么为什么我们不能在实例化后立即使用此类的方法呢? 最佳答案

php 查找实例化类的位置

我在一个大型项目中遇到了一些问题,它归结为某个特定类以某种方式被多次实例化,这导致了不需要的复制/开销。有什么方法可以自动找出它是从哪个文件/行号实例化的?我在这里看到这个问题-Findwhereaclasswasinstantiated但我没有因为它被重新声明而收到fatalerror,所以我不认为include/require是问题所在。在构造函数中我已经将它输出到带有时间戳的txt文件,只需要知道有问题的代码在哪里并删除/简化它 最佳答案 debug_backtrace()将给整个shebang发生了什么事。如果您需要的话,g

PHP:通过引用实例化类?

我正在将一些旧的PHP4.x代码转换为PHP5.3。我遇到了以下情况,但不确定它的作用。$variable=&newClassName();这和以下有什么区别:$variable=newClassName(); 最佳答案 在PHP4的旧时代,=&在构造对象时是必需的。在PHP5中,它不是。=&做引用赋值。例如:$a='a';$b=&$a;$b='b';echo$a;//Prints'b',sinceaandbhavebeenlinkedby&=.换句话说,它有它的用途,只是在实例化对象时没有。对于该用途,它已被弃用。

php - 如何检查一个对象是否可以使用 PHP 实例化

我不能这样做,但想知道什么会起作用:is_object(newMemcache){//assignmemcacheobject$memcache=newMemcache;$memcache->connect('localhost',11211);$memcache->get('myVar');}else{//dodatabasequerytogeneratemyVarvariable} 最佳答案 您可以使用class_exists()来检查一个类是否存在,但如果您可以实例化该类,它不会返回!你不能的原因之一,可能是它是一个抽象类。要

php - 使用 array_map 返回实例化对象数组?

假设我有以下内容:classThing{function__construct($id){//somefunctionalitytolookuptherecordandinitializetheobject.return$this;}}现在给定一组ID,我想以一组实例化事物结束。类似于以下内容:$ids=array(1,2,3,4,5);$things=array_map(array('Thing','new'),$ids);//Doesn'twork当然,Thing类没有"new"方法,“__construct”也是禁止使用的。我知道这可以通过循环$ids的额外步骤来完成,但是有没有

php - 实例化目录中的所有类

我正在使用Laravel并创建artisan命令,但我需要通过调用在start/artisan.php中注册每个命令Artisan::add(newMyCommand);我如何获取目录(app/commands/*)中的所有文件,并将它们中的每一个实例化到一个数组中?我想得到类似(伪代码)的东西:$my_commands=[newCommand1,newCommand2,newCommand3];foreach($my_commandsas$command){Artisan::add($command);} 最佳答案 这是一种自动注

php - 在抽象类的静态函数中创建一个新实例

abstractclassdb_table{staticfunctionget_all_rows(){...while(...){$rows[]=newself();...}return$rows;}}classuserextendsdb_table{}$rows=user::get_all_rows();我想从抽象父类中定义的静态方法创建一个类的实例,但PHP告诉我“fatalerror:无法实例化抽象类......”我应该如何正确实现它?编辑:在这种情况下,我当然想创建类“user”的实例,而不是抽象类的实例。所以我必须告诉它创建一个被调用子类的实例。

php - 在 PHP 中实例化类的正确方法

我正在尝试在类中创建一个方法,该方法将实例化当前所在的类。但我还需要通过此方法在所有扩展类中正常工作。正如我从thisthread中了解到的那样,对此任务使用self关键字是不好的。显而易见的选择是使用static关键字。但是,我遇到了同样有效的不同方法。例子:classSimpleClass{private$arg;publicfunction__construct($arg){$this->arg=$arg;}publicfunctiongetArg(){return$this->arg;}publicfunctionsetArg($arg){$this->arg=$arg;}pu

java - 创建泛型类的公共(public)内部类的实例

所以我有如下内容:publicclassEnclosing>{//non-relevantcodesnippedpublicclassInner{privateTvalue;publicInner(Tt){value=t;}}}万物皆可编译,天下皆大欢喜。但是,每当我尝试创建Enclosing.Inner的实例时如下,我不行:newEnclosing.Inner(5);出现以下错误:CannotallocatethemembertypeEnclosing.Innerusingaparameterizedcompoundname;useitssimplenameandanenclosin

java动态内存分配?

为什么使用new关键字的对象初始化称为动态内存分配,因为编译时本身我们需要知道该对象所需的内存。另外请解释当您在heap和stack中执行ClassAobject=newClassA();时会发生什么。 最佳答案 所有Java对象都是动态分配的。您总是传递对它们的引用。这就是语言的设计方式。当你这样做时:ClassAobj=newClassA();然后在堆上分配对象并将对它的引用存储在堆栈上(当然,假设它在方法内部)。这意味着您始终可以传递对象,而不必担心它们的存储位置。 关于java动