小编Mik*_*kel的帖子

varchar(255)vs tinytext/tinyblob和varchar(65535)vs blob/text

根据定义:

VARCHAR:Length的范围是1到255个字符.除非给出BINARY关键字,否则VARCHAR值将以不区分大小写的方式进行排序和比较.x + 1个字节
TINYBLOB,TINYTEXT:BLOB或TEXT列,最大长度为255(2 ^ 8 - 1)个字符x + 1个字节

基于此,我创建了下表:

CREATE TABLE `user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255),
  `lastname` tinytext,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)

或者创建varchar或tinytext更好,为什么

它是否相同:

VARCHAR:长度范围> 255个字符.除非给出BINARY关键字,否则VARCHAR值将以不区分大小写的方式进行排序和比较.x + 2个字节
BLOB,TEXT BLOB或TEXT列,最大长度为65535(2 ^ 16 - 1)个字符x + 2个字节

mysql

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

为什么debug_backtrace()有时不包括行号?

我发现有时debug_backtrace()不包括呼叫的线路号码.有什么理由可以解决这个问题吗?

提前致谢.

PS是的,它省略行号的调用是我自己的代码,而不是内部PHP代码.

php debugging

13
推荐指数
2
解决办法
4694
查看次数

基于数组键将Flat PHP数组转换为嵌套数组?

我需要将数组键指示结构的平面数组转换为嵌套数组,其中父元素变为元素零,即在示例中:

$education['x[1]'] = 'Georgia Tech';
Run Code Online (Sandbox Code Playgroud)

它需要转换为:

$education[1][0] = 'Georgia Tech';
Run Code Online (Sandbox Code Playgroud)

这是一个示例输入数组:

$education = array(
  'x[1]'     => 'Georgia Tech',
  'x[1][1]'  => 'Mechanical Engineering',
  'x[1][2]'  => 'Computer Science',
  'x[2]'     => 'Agnes Scott',
  'x[2][1]'  => 'Religious History',
  'x[2][2]'  => 'Women\'s Studies',
  'x[3]'     => 'Georgia State',
  'x[3][1]'  => 'Business Administration',
);
Run Code Online (Sandbox Code Playgroud)

这是输出应该是什么:

$education => array(
  1 => array(
    0 => 'Georgia Tech',
    1 => array( 0 => 'Mechanical Engineering' ),
    2 => array( 0 => 'Computer Science' ),
  ),
  2 => array(
    0 => …
Run Code Online (Sandbox Code Playgroud)

php multidimensional-array

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

单例类实例方法与PHP中静态类方法的性能?

我对客观分析感兴趣,哪个性能更高; 调用单例类的实例方法或静态类的方法.我已经看过这个,所以我不是在寻找关于两者之间差异的讨论,或者讨论哪个是"更好".我只对两者之间的相对表现感兴趣.提前致谢.

-麦克风

php performance singleton static-methods class-design

6
推荐指数
2
解决办法
9887
查看次数

在 Bash 中使用 jq 按值的降序对对象属性进行排序

我有以下 JSON 片段:

{
    "root_path": "/www",
    "core_path": "/www/wp",
    "content_path": "/www/content",
    "vendor_path": "/www/vendor"
}
Run Code Online (Sandbox Code Playgroud)

我想jq首先使用来获取按长度降序排序的值:

/www/content
/www/vendor
/www/wp
/www
Run Code Online (Sandbox Code Playgroud)

我需要这些,以便我可以与文件列表进行匹配,以查找文件存在于哪个命名路径中。

然后我想jq再次使用来交换值的属性(它可以删除重复的属性,没关系):

{
    "/www": "root_path".
    "/www/wp": "core_path",
    "/www/content": "content_path",
    "/www/vendor": "vendor_path"
}
Run Code Online (Sandbox Code Playgroud)

对于第二个查询,我的用例是能够查找匹配的路径值并找到其路径名,然后我将在具有相同架构的第二个 JSON 片段中使用它来获取命名路径的值。

我的用例是用于网站部署,我有一个包含文件名的配置文件,因为它们将存在于部署服务器上,应该从源服务器复制到部署服务器,但服务器可能具有不同的目录布局。

我需要为此使用 Bash,但如果有更好的方法来做我想做的事情,我愿意。也就是说,我真的很想学习如何jq更好地使用,所以我更愿意学习如何使用jq这些转换。

我正在使用jq版本1.5

sorting bash json key jq

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

如何使用另一个对象实例初始化PHP类的实例?

使用同一个类的另一个对象(理想情况下在PHP 4.x中)初始化PHP类的实例有什么好方法(以及任何优点和缺点)

这里initialize()基本上是我想要做的(例子从我的用例非常简化,见下文):

$product = new Product('Widget');
$product2 = new Product('Widget #2');
$product->initialize($product2);
echo $product->name;  // echos "Widget #2"

class Product {
 var $name;
 function __constructor($name) {
   $this->name = $name;
 }
 function initialize($product) {
   // I know this cannot be done this way in PHP. 
   // What are the alternatives and their pros & cons?
   $this = $product;  
 }
}
Run Code Online (Sandbox Code Playgroud)

我知道这可能不是"良好的编程习惯"; 我有20多年的其他语言编程经验,我知道什么是好的,什么不是.所以,如果这样做有意义,我们希望我们不会被挂断.我有一个用例使用一些我无法改变的开源代码,所以请耐心等待我的需要.我实际上是在围绕一些埋藏在WordPress核心深处的非常丑陋的数组代码创建一个OOP包装器.

我正在尝试编写它,以便在将来的版本中,他们可以摆脱丑陋的基于数组的代码,因为每个人都将使用新的API,否则完全封装这些讨厌的数组.但为了使它优雅地工作,我需要能够执行上述操作(在PHP 4.x中)并且我不想编写仅复制属性的代码.

在此先感谢您的帮助.

UPDATE

你们中的许多人都在暗示,clone但除非我误解了这个问题.clone制作副本; 这不是问题的症结所在. …

php syntax class instantiation

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