小编jer*_*emy的帖子

你如何在PHP中创建可选参数?

在PHP手册中,为了显示带有可选参数的函数的语法,它们在每组依赖的可选参数周围使用括号.例如,对于该date()功能,手册内容为:

string date ( string $format [, int $timestamp = time() ] )
Run Code Online (Sandbox Code Playgroud)

哪里$timestamp是可选参数,当留空时它默认为time()函数的返回值.

在PHP中定义自定义函数时,如何创建这样的可选参数?

php

176
推荐指数
7
解决办法
12万
查看次数

mtl,变形金刚,monads-fd,monadLib,以及选择的悖论

Hackage有几个monad变换器包:

  • mtl:Monad变压器库
  • 变形金刚:混凝土仿函数和monad变压器
  • monads-fd:Monad类,使用函数依赖
  • monads-tf:Monad类,使用类型族
  • monadLib:monad变换器的集合.
  • mtl-tf:使用类型族的Monad变换器库.
  • mmtl:模块化Monad变压器库
  • mtlx:具有类型索引的Monad变换器库,提供"免费"副本.
  • compose-trans:可组合的monad变换器

(也许我错过了一些)

我们应该使用哪一个?

mtl是Haskell平台中的一个,但我一直听说reddit它是不酷的.

但无论如何,选择有什么不好,这不是一件好事吗?

好吧,我看到数据访问器的作者如何必须使所有这些满足流行的选择:

  • data-accessor-monadLib库:monadLib monad的访问器函数
  • data-accessor-monads-fd library:使用Accessor访问monads-fd State monad类中的状态
  • data-accessor-monads-tf library:使用Accessor访问monads-tf状态monad类型系列中的状态
  • data-accessor-mtl library:使用Accessor访问mtl State monad类中的状态
  • data-accessor-transformers library:使用Accessor访问变换器State monad中的状态

我想如果这种情况继续下去,例如几个竞争的箭头包演变,我们可能会看到类似:spoonklink-arrows-transformers,spoonklink-arrows-monadLib,spoonklink-tfArrows-transformers,spoonklink-tfArrows-monadLib,...

然后我担心如果spoonklink被分叉,Hackage将耗尽磁盘空间.:)

问题:

  • 为什么有这么多monad变压器包?
  • 为什么mtl [被认为]不酷?
  • 有哪些主要区别?
  • 大多数这些看似竞争的软件包都是由Andy Gill编写的,由Ross Paterson维护.这是否意味着这些软件包不是竞争对手,而是以某种方式协同工作?安迪和罗斯认为他们自己的任何套餐都已过时吗?
  • 你和我应该使用哪一个?

monads haskell monad-transformers

84
推荐指数
3
解决办法
6374
查看次数

绑定pdo中的多个值

是否有一种简单的方法可以在PDO中绑定多个值而无需重复?看看下面的代码:

$result_set = $pdo->prepare("INSERT INTO `users` (`username`, `password`, `first_name`, `last_name`) VALUES (:username, :password, :first_name, :last_name)");

$result_set->bindValue(':username', '~user');
$result_set->bindValue(':password', '~pass');
$result_set->bindValue(':first_name', '~John');
$result_set->bindValue(':last_name', '~Doe');

$result_set->execute();
Run Code Online (Sandbox Code Playgroud)

在这里,我以重复的方式将值绑定了4倍.那么在PDO中绑定多个值有一种简单的方法吗?

php pdo bind

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

在PHP中将日期从YYYYMMDD转换为DD/MM/YYYY格式

我有一个MySQL数据库表,其中日期以YYYYMMDD格式存储.例如:20121226.

我想以DD/MM/YYYY格式显示此日期.例如:2012年12月26日

我想出的是用来substr分别提取日,月和年.我想知道是否有更简单的方法来做到这一点.

此外,有没有办法将此日期转换为"2012年12月26日"格式,而无需编写单独的代码?

php date

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

mysql新用户访问被拒绝

刚开始使用mysql.我使用root登录并按照在线参考创建新用户:

mysql> CREATE USER 'abc'@'%' IDENTIFIED BY '111111';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'abc'@'%' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)

然后我退出并尝试使用新用户登录:

mysql --user=abc --password=111111 mysql
Run Code Online (Sandbox Code Playgroud)

但得到一条错误信息:

用户'abc'@'localhost'拒绝访问(使用密码:YES)

我错过了什么吗?

mysql

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

PHP音节检测

我想找到一种方法,可以用PHP将一个单词分成音节.例如,单词"nevermore"通过detect_syllables()运行,将返回"nev-er-more".有没有好的API或其他东西?

php nlp

9
推荐指数
2
解决办法
5180
查看次数

如何在javascript中将变量传递给href?

如何在这里传递这个变量值?下面的代码不起作用.关于Stackoverflow的所有其他讨论都不清楚.

<script type="text/javascript">
        function check()
        {
            var dist = document.getElementById('value');
            if (dist!=""){
                window.location.href="district.php?dist="+dist;
            }
            else
               alert('Oops.!!');
        }
</script>
Run Code Online (Sandbox Code Playgroud)

我的HTML代码是:

<select id="value" name="dist" onchange="return check()">
Run Code Online (Sandbox Code Playgroud)

javascript href location-href

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

谷歌地图api:如何禁用商业地点?

我使用API​​v3创建了一个自定义地图,并且我已经定位了我的标记(酒店和餐馆地址)

但在地图上,默认情况下还有一些酒店,餐馆和任何商业地点的标签.其中一些与我的客户竞争......

有没有办法从地图中删除它们,在地图视图中只留下非商业名称?

google-maps google-maps-api-3

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

如何从静态子方法获取类名

<?php
class MyParent {

    public static function tellSomething() {
        return __CLASS__;
    }
}

class MyChild extends MyParent {

}

echo MyChild::tellSomething();
Run Code Online (Sandbox Code Playgroud)

上面的代码回声"MyParent".我怎样才能得到儿童班的名字 - 在这种情况下是"MyChild"?如果它是可能的...

我只需要知道哪个孩子正在调用继承的方法.

php oop inheritance

5
推荐指数
2
解决办法
2246
查看次数

如何计算 MySQL 查询中两个散列之间的差异?

我正在尝试计算输入散列和数据库存储的散列之间的汉明距离。这些是感知散列,因此它们之间的汉明距离对我很重要,并告诉我两个不同图像的相似程度(参见http://en.wikipedia.org/wiki/Perceptual_hashinghttp://jenssegers.com/61/感知图像哈希http://stackoverflow.com/questions/21037578/)。哈希是 16 个十六进制字符长,如下所示:

b1d0c44a4eb5b5a9
1f69f25228ed4a31
751a0b19f0c2783f

我的数据库看起来像这样:

CREATE TABLE `hashes` (
  `id` int(11) NOT NULL,
  `hash` binary(8) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

INSERT INTO `hashes` (`id`, `hash`) VALUES
    (1, 0xb1d0c44a4eb5b5a9),
    (2, 0x1f69f25228ed4a31),
    (3, 0x751a0b19f0c2783f);
Run Code Online (Sandbox Code Playgroud)

现在,我知道我可以像这样查询汉明距离:

SELECT BIT_COUNT(0xb1d0c44a4eb5b5a9 ^ 0x751a0b19f0c2783f)
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,它将输出 38。但是,我似乎无法为此比较引用列名。以下不按预期工作。

SELECT BIT_COUNT(hash ^ 0x751a0b19f0c2783f) FROM hashes
Run Code Online (Sandbox Code Playgroud)

有谁知道如何SELECT使用我的数据库中的列像上面的第一个查询一样计算汉明距离?我试着使用的场景无数hex()unhex()conv(),并cast()以不同的方式。这是在 MySQL 中。

更新我上面的查询在 MySQL v8 中运行时似乎按预期工作(感谢@LukStorms 指出这一点)。您可以使用我下面的小提琴并更改左上角的版本。我现在的问题是:如何确保该行为适用于所有版本的 MySQL?

小提琴:https : //www.db-fiddle.com/f/mpqsUpZ1sv2kmvRwJrK5xL/0

mysql hash bit-manipulation hamming-distance phash

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