草庐IT

Instance

全部标签

php - 将类的实例分配给 php 中的新对象

以下是manual中的示例:var='$assignedwillhavethisvalue';$instance=null;//$instanceand$referencebecomenullvar_dump($instance);var_dump($reference);var_dump($assigned);?>我无法理解结果:NULLNULLobject(SimpleClass)#1(1){["var"]=>string(30)"$assignedwillhavethisvalue"}任何人都可以告诉我答案,我认为这三个var指向同一个实例。 最佳答案

PHP 类型提示不起作用

我正在尝试在我的应用程序中使用类型提示功能,但有些地方无法正常工作。我尝试了以下define('PULSE_START',microtime(true));require('../Pulse/Bootstrap/Bootstrap.php');$app=newApplication();$app->run();$app->get('/404',function(Application$app){$app->error(404);});我得到的不是404输出Catchablefatalerror:Argument1passedto{closure}()mustbeaninstanceof

php - 无法创建非静态方法 - fatal error

我正在开发一个PHP网络应用程序。我使用了来自gurrido.net的新数据网格,它在本地运行良好,但是当我将其上传到服务器时,出现以下错误:Fatalerror:CannotmakenonstaticmethodBase::getClassName()staticinclassSingletonsin/var/www/reskb/phpinc/Singletons.class.phponline84在我没有使用网格的旧版本中,我让它工作了。这是我的singletons.class.php文件代码:getClassName();$self->objects[$className]=$o

php - 库作为 Codeigniter 中的单例?

我使用单例模式创建了一个自定义库。为什么要这样?因为我需要能够在没有$this->引用的情况下调用我的函数,例如,我可以执行以下代码:functionfoo(){MyLibrary::instance()->foo();}然后我可以像这样在Controller中调用我的函数:functionfoo();代替$this->mylibrary->foo();我有麻烦了,因为CodeIgniter试图在最佳方法是“读取”静态实例时实例化我的库。为什么我需要这样做?我的自定义库必须从位于应用程序文件夹外的/plugins目录中的外部php文件注册“Hook”。看:/申请/插件/plugins/

php - 抽象类在 PHP 中扩展抽象类?

我正在研究一个简单的抽象数据库类。在我对这个类的使用中,我希望有一些实例是一个单例。我在想有一个不是单例的抽象类,然后将它扩展到另一个是单例的抽象类。这可能吗?推荐?编辑:我想要两个几乎相同的抽象,除了一个是单例。所以唯一的区别将是一个将具有另一个的所有功能,但将具有使其表现得像单例的其他属性和方法。我希望为此创建一个基类代码库,这样当我进行更改时,我就不必使两个文件保持同步。 最佳答案 在我做事的方式中,我认为抽象单例没有用处。这是因为,1)您想要成为单例的是您实例化以在应用程序中使用的最终类,无论它是库、模型、Controlle

php - 在 PHP 5.3 中使用实例方法的奇怪结果

想知道下面的例子实际上是如何工作的,以及如何能够动态地做一些事情。使用call_user_func或call_user_func_array不允许这种情况发生。name;}}$george=newPerson();echo$george->say_hi();?>结果应该是:Hi,George想知道为什么实例方法hi不仅可以静态调用(这在PHP中会发生并不奇怪),而且为什么我能够使用$this 最佳答案 来自manual:Thepseudo-variable$thisisavailablewhenamethodiscalledfrom

php - 使用参数数组创建新的对象实例

我正在尝试创建这样一个类的新实例:$obj=new$class;我这样做的方式是,一组通用函数将为许多类执行此操作,但现在我正在实现一些参数。现在虽然处理函数看起来像这样:functionnewInst($argA=null,$argB=null,$argC=null)这必须预先包含所有参数并且有上限。所以,我正在尝试做这样的事情:functionnewInst(){$obj=new$class(func_get_args());...}但我不希望仅应用第一个参数,而是将数组作为一组参数应用。我试过了functionnewInst(){$obj=new$class;call_user_

PHP 多实例单个日志文件

我对PHP有点陌生,所以我想知道您能否向我解释一下。我正在尝试编写一个将附加到日志文件的类。我已经编写了类,以便资源本身在Logger类中是静态的。这在我测试时非常有用,因为我可以让多个类实例化一个Logger对象,但所有类都将共享相同的静态资源以写入文件。也就是说,我现在面临PHP的多个实例(多个用户加载我的页面)的问题,更具体地说:并发性。问题:当我的站点遇到使用记录器的并发php实例时,它们是否会争夺对该文件的访问权限?我使用的是UBUNTU,但这对Windows有影响吗?在我的记录器文件中,我每添加X行检查一次,以查看文件的大小,如果大小大于Y,我将关闭该文件并“旋转”文件(m

php - '无法确定请求哪个 URL : Stripe_Charge instance has invalid ID

我想在站点中实现Strip付款流程。我尝试这样做,但它看起来不起作用。我得到的错误是fatalerror:在/home/twassist/public_html/wp-content/themes/inovado/stripe-php-1.7中出现未捕获的异常“Stripe_InvalidRequestError”和消息“无法确定要请求的URL:Stripe_Charge实例具有无效ID:”.15/lib/Stripe/ApiResource.php:46堆栈跟踪:#0/home/twassist/public_html/wp-content/themes/inovado/stripe

php - 永久设置私有(private)类变量 PHP

问题:我想在类中永久设置私有(private)变量,然后从类外部使用getter函数访问它们。问题是每次我实例化一个新类并创建一个对象时,它都会破坏先前设置的变量。在提供的示例中,我不想通过调用函数“getAgain”传递对象。我想简单地访问globalVars类而不破坏任何设置变量。我知道通过创建一个“新对象”本质上会破坏当前的非静态变量。所以:如何在类中永久设置私有(private)变量?或如何在不重新实例化类的情况下调用函数(getter/setter)(为了不破坏当前设置的var(s))。我担心我没有以正确的方式处理这个问题,或者我的方法可能有缺陷。";publicfuncti