小编ser*_*gio的帖子

为什么你不能继承一个尚未定义的类继承自一个尚未定义的类?

我研究类编译,它的序列和逻辑.

如果我在简单父级之前声明一个类:

 class First extends Second{}
 class Second{}
Run Code Online (Sandbox Code Playgroud)

这将工作正常.查看PHP版本的实例.

但是,如果父类还有一些尚未声明的父类(扩展或实现),如下例所示:

class First extends Second{}
class Second extends Third{}
class Third{}
Run Code Online (Sandbox Code Playgroud)

我会有一个错误:

致命错误:找不到"第二级"......

查看PHP版本的实例.

那么,为什么在第二个例子中它找不到Second类?也许php无法编译这个类因为它还需要编译Third类,还是什么?

我试图找出为什么在第一个例子中,PHP编译类第二,但如果它将有一些父类,它不会.我研究了很多,但没有确切的.

  • 我不是试图以这种方式编写代码,但在这个例子中,我试图理解编译及其序列是如何工作的.

php inheritance php-internals

28
推荐指数
1
解决办法
905
查看次数

比较PHP对象时出现意外结果

当我比较两个不同的对象,它返回首先true,和比后print_r(在对象上)返回 false.

从PHP手册:

如果两个对象实例具有相同的属性和值,则它们是相同的,并且是同一类的实例.

但在这里,例如,我设置了不同的值.为什么PHP 5.4.0 - 5.5.7之间的结果有所不同?

abstract class first
{
    protected $someArray = array();
}     

class second extends first
{    
    protected $someArray = array();        
    protected $someValue = null;

    public function __construct($someValue)
    {
        $this->someValue = $someValue;
    }
}

    $objFirst = new second('123');       
    $objSecond = new second('321');       

    var_dump ($objFirst == $objSecond);    
    print_r($objFirst);    
    var_dump ($objFirst == $objSecond);
Run Code Online (Sandbox Code Playgroud)

结果是:

 bool(true)
 second Object ( [someArray:protected] =>
 Array ( ) [someValue:protected] => 123 )
 bool(false)
Run Code Online (Sandbox Code Playgroud)

但我的期望是:

  bool(false)
  second Object …
Run Code Online (Sandbox Code Playgroud)

php object

26
推荐指数
1
解决办法
1093
查看次数

将GitHub问题分配给多个人

如何将GitHub问题分配给多个人?

我和我的同事一起使用GitHub存储库工作.如果我创建了一个问题,我可以将其分配给一个用户,但有时我需要将其分配给多个人.

github

18
推荐指数
3
解决办法
9348
查看次数

PHP array_multisort意外影响

我使用array_multisort函数完成了一些任务.在编写脚本的过程中,我做了一个var_dump,并$mainArray根据PHP版本获得了不同的结果.这是代码:

$mainArray = array(
    0 =>array(
        "key1" => array(7,4,5),
        'key2' => array('cc','aa')
    )
);

foreach($mainArray as $secondArray){
    foreach($secondArray as $array){
        array_multisort($array);
    }
}

var_dump($mainArray);
Run Code Online (Sandbox Code Playgroud)

输出4.3.10 - 4.4.9, 5.1.1 - 5.5.7:

array(1) { 
   [0]=> array(2) { 
         ["key1"]=> array(3) { 
                    [0]=> int(7) 
                    [1]=> int(4) 
                    [2]=> int(5) } 
         ["key2"]=> array(2) { 
                    [0]=> string(2) "cc" 
                    [1]=> string(2) "aa" } 
   } 
}
Run Code Online (Sandbox Code Playgroud)

但是输出为4.3.0 - 4.3.9, 5.0.0 - 5.0.5我得到排序数组:

array(1) { 
  [0]=> array(2) { 
          ["key1"]=> array(3) …
Run Code Online (Sandbox Code Playgroud)

php arrays sorting

6
推荐指数
1
解决办法
215
查看次数

移动InnoDb数据库

我有DB InnoDb innodb_db_1。我已经打开了innodb_file_per_table。

如果我去,var/lib/mysql/innodb_db_1/我会找到文件table_name.ibd, table_name.frm, db.opt

现在,我正在尝试将这些文件复制到另一个数据库,例如复制到innodb_db_2var/lib/mysql/innodb_db_2/),但是什么也没有发生。

但是,如果我的数据库是MyIsam,则可以用这种方式进行复制,一切正常。

通过复制InnoDb数据库文件来移动数据库有什么建议?

mysql myisam innodb

4
推荐指数
2
解决办法
7663
查看次数

Magento:按国家/地区名称获取国家/地区代码

我试图按国家/地区名称查找国家/地区代码.所以,例如,我有"荷兰",我需要得到"NL"

我知道有找到名称格式代码的方法:

$country_name = Mage::app()->getLocale()->getCountryTranslation($country_code) 
Run Code Online (Sandbox Code Playgroud)

但我需要反过来.
那么Magento有什么方法可以解决它吗?

php magento

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

标签 统计

php ×4

arrays ×1

github ×1

inheritance ×1

innodb ×1

magento ×1

myisam ×1

mysql ×1

object ×1

php-internals ×1

sorting ×1