我继承了一些php 5.x代码,这些代码在php 7.4.3上出现以下警告:
PHP Warning: Use of undefined constant self - assumed 'self'
(this will throw an Error in a future version of PHP)
令人不快的一行是:
class Array_sort
{
static private $key;
static private $type = 'ASC';
public static function sort_by_key($array, $
我正在处理一个类,在这个类中,我试图撤回一种在PHP中动态设置__FUNCTION__神奇常量的方法。
代码到目前为止
<?php
class TestFunction {
var $method = __FUNCTION__;
public function __construct() {
}
public function testMethod() {
return $this->method;
}
}
不起作用..。我不确定这是否可能..。只是想跳出
我可以将一个对象向上转换为它的父对象吗?
示例代码
class ClassA {
public function foo(){
echo get_class($this);
}
}
class ClassB extends ClassA {
public function foo(){
echo get_class($this); // prints ClassB :)
parent::foo(); // prints ClassB / I want ClassA :(
}
}
$B = new ClassB();
$B->fo
当我在index.php中使用它时,自动加载程序可以工作,但是当我在index.php中创建一个对象时,这个对象必须创建其他对象(这些对象都在同一个名称空间中),它会抛出错误Uncaught Error: Class 'xxx' not found in (...)。
我的composer.json看起来是这样的:
{
"autoload": {
"psr-4": {
"pizzaCase\\": "src",
"Connection\
在PHP中,当在实例中使用时,和有什么不同?
示例:
class A {
function dump() {
echo get_called_class();
echo get_class($this);
}
}
class B extends A {}
$A = new A();
$B = new B();
$A->dump(); // output is 'AA'
$B->dump(); // output is 'BB'
这种情况有什么不同吗?
我应该在什么时候使用get_called_cl
好吧,我想我这里有东西.
在类中,im试图根据所用方法的名称为私有函数设置条件。
所以代码看起来像是:
<?php
class my_class{
public function my_method($arg1) {
$this->private_function($arg1);
}
private function private_function($arg2){
if (__METHOD__ == "my_class::my_method"){
#THIS FAILS
}else{
#THIS WORKS
}
ret
使用在我的代码上自动加载类。示例:
<?php
spl_autoload_register(function ($class_name) {
include 'my_class1.php';
include 'my_class2.php';
//...
include 'my_classN.php';
});
$obj = new MyClass1();
?>
如果我在代码中只使用了类MyClass1,那么自动加载所有文件还是只加载my_class1.php呢?提前谢谢。
编辑:不使用上述代
我正在使用getid3库和Laravel项目。我在app/目录中创建了一个名为“included”的文件夹,在其中创建了一个名为getid3的文件夹,其中包含了一堆php文件,其中包含了驻留在该目录中的getid3.php文件。以下是文件内容以及Github:- 上的库
在控制器中,当我试图实例化在该文件中定义的getID3类时,会得到以下错误:-
FatalErrorException in ApiV1.php line 217:
Class 'App\Http\Controllers\getID3' not found
下面是控制器中试图实例化类的代码块
ob_start(
Fatal error: Class 'TKStdlib\mysqli' not found in /var/www/tk-browser-app/application/library/tk-stdlib/DbAbstract.php on line 28
听起来我需要安装mysqli。是的,我知道,但它说,它是安装时,我做"php -m“。它在我的php5-fpm的php.ini文件中作为"extension=mysqli.so“。
我发现这个指南很难理解。./配置文件应该在哪里?这适用于php5-mysql,还是也适用于percona?
如果您尝试在PHP类的方法中使用class_exists(),则必须指定类的全名--不考虑当前的名称空间。例如,如果我的类是:
<?
namespace Foo;
class Bar{
public function doesBooClassExist(){
return class_exists('Boo');
}
}
Boo是一个类(可以正确地自动加载),如下所示
namespace Foo;
class Boo{
// stuff in here
}
我是php的新手,但我学得很快,我有一个问题,我希望你们专业人士能帮助我。我用谷歌搜索了一下,还是找不到答案。
我正在尝试做一个有两个层次的动态下拉菜单-我已经建立了一个数据库并安装了数据,第一个层次有一个主键和类别名称,下一个层次有一个主键、一个外键和一个子类别名称。
我已经为分类创建了一个do while循环,效果非常好!现在我正在尝试插入子类别。我会试着总结一下我想要获得的东西。
每个类别之间的类别的while循环运行另一个循环,显示类别的主键与子类别的外键匹配的所有子类别。然后继续。
例如:
Category
Sub category
Sub category
Sub ca
我正在使用以下命令创建一个新的stdClass
$usrobj=new stdClass();
它给了我这个错误
PHP Warning: require_once(objects/User/stdClass.php): failed to open stream: No such file or directory in...
似乎php把stdClass当作用户定义的类。
同样的事情也发生在
$db=new mysqli();
我有一个gentoo linux amd64服务器,它运行Apache2.2.22和PHP5.4.6。
我有一个使用zf v2.0 b7的Zend Framework2项目。
我使用emerge安装了Imagick pecl扩展,在重启apache并查看phpinfo的输出后,我可以清楚地看到Imagick扩展已正确安装。
我在我的Zend Framework项目中的一个操作中添加了下面这行:
$im = new Imagick();
当我在浏览器上运行该操作时,我得到以下错误:
Class 'DrinkManagement\Controller\Imagick' not fo