小编Jon*_*Jon的帖子

哪个是在函数范围之外引用变量的更好方法?

我可以$var通过以下两种方式之一更改我的函数:通过引用传递它或使用global关键字.

$var1 = 10;

function test1() {
    global $var1;
    $var1++;
}

function test2(&$var) {
    $var++;
}
Run Code Online (Sandbox Code Playgroud)

两种方法都有相同的结果,但它们之间有什么区别吗?哪一个更受欢迎哪一个更快?

php pass-by-reference

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

如何从PHP中的字符串中删除多个空格和新行?

我有一个带有文本区域的表单,我需要从输入的字符串中删除最终的多个空格和多个新行.
我写了这个函数来删除多个空格

function fix_multi_spaces($string)
{
    $reg_exp = '/\s+/';
    return preg_replace($reg_exp," ",$string);
}
Run Code Online (Sandbox Code Playgroud)

此函数适用于空间,但它也会替换新行将其更改为单个空格.
我需要将多个空格更改为1个空格,将多个新行更改为1个新行.
我能怎么做?

php regex

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

Querypath和格式错误的HTML

我正在使用QueryPath来操作页面DOM.我正在操作的页面有一些标签,QueryPath不知道如何解释.

我已经尝试将以下内容作为选项传递,但我仍然会收到错误:

ignore_parser_warnings
use_parser(html)

启用这些错误后会出现以下错误:

Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag nobr invalid in Entity

Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: expecting ';' in Entity

Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag nobr invalid in Entity

Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: expecting ';' in Entity

Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag nobr invalid in Entity

Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: expecting ';' in Entity

任何帮助将不胜感激.

php querypath

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

在MySQL中存储大量数据?

我试图在MySQL中创建一个DB表来存储我的产品统计数据.几乎每一天的统计数据都应该在数据库中.问题是速度.

目前,我为每个产品存储以下值:TIME,SOLD ITEM,PRODUCT_ID,HIT,OTHER_ID

我想了两种不同的存储数据的方法:

  • 连续每个产品的日复一日(序列化)
  • 连续每个产品逐年(序列化)

还是你的想法?

速度测试我没有那么糟糕,差不多好.但是你对这个问题有更好的想法或经验吗?

php mysql database storage product

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

如何在 PHP 中删除特定的 HTTP 响应标头?

我想删除以下标题:

Connection: Keep-Alive
Server: Apache/2.2.13 (Win32)
Vary: Accept-Encoding
Keep-Alive: timeout=5, max=66
Run Code Online (Sandbox Code Playgroud)

php header http-headers

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

Math.Pow给出"不能隐式地将类型'double'转换为'float'"错误

在这个程序中,我试图创建一个简单的计算器.但是,我似乎无法找到克服上述错误的方法Math.Pow.

namespace BinaryCalc
{
    class Binary
    {
        public static void Main()
        {

        int addition,subtraction;
        float division, multiplication, power, sqrt;

        int x;
        int y;
        x = 10;
        y = 7;

        //Console.WriteLine("Please enter a number for x");
        //string line = Console.ReadLine();
        //int x = int.Parse(line);

        //Console.WriteLine("Please enter a number for y");
        //string line2 = Console.ReadLine();
        //int y = int.Parse(line2);


        addition = (int)x + (int)y;
        subtraction = (int)x - (int)y;
        division = (float)x / (float)y;
        multiplication = (float)x * (float)y;

        power …
Run Code Online (Sandbox Code Playgroud)

c# math binary

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

为什么从floatval()获得的值在与另一个数字进行比较时评估为false?

请参阅下面的测试用例:

$val = floatval("336.00");
$result = 300*1.12;

header("content-type: text/plain");

echo "\$result = 300*1.12 which equals $result\n";
echo "\$val = floatval(\"336.00\") which equals $val\n";
echo "gettype(\$val) = ".gettype($val)."\n";
echo "gettype(\$result) = ".gettype($result)."\n";
echo "gettype(300*1.12) = ".gettype(300*1.12)."\n";
echo "gettype(floatval(\$result)) = ".gettype(floatval($result))."\n";

if ($result == 300*1.12) 
    echo "\$result == 300*1.12 is true\n";
else
    echo "\$result == 300*1.12 is false\n";

if ($result == $val) 
    echo "(\$result == \$val) \$result == 300*1.12 is true\n";
else
    echo "(\$result == \$val) \$result == 300*1.12 is false\n";
Run Code Online (Sandbox Code Playgroud)

您认为最后一个if/else块也会显示为true,对吗?不是这样!查看同一脚本的输出: …

php floating-point comparison

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

linq和数组字符串问题.尝试在数组字符串中查找元素

我有一个string[] data包含512个项目的数组.我可以使用LINQ查找包含字符串的所有元素"tx"吗?

我确实尝试过,data.Where但这不是一个有效的陈述.

c# linq

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

使用SETLOCAL时如何持久地将目录添加到PATH?

可能重复:
使环境变量生存ENDLOCAL 如何将变量
的值保留在使用"延迟扩展本地"模式的Windows批处理脚本之外?

我有一个批处理文件,如下所示:

REM I need to use SETLOCAL so as not to pollute the environment
REM with any variables used to implement the logic in this script
SETLOCAL
SET I_DONT_WANT_THIS_VARIABLE_TO_LEAK_OUTSIDE=c:\

REM BUT, there is this one change to the environment I want to make sticky:
PATH %PATH%;%I_DONT_WANT_THIS_VARIABLE_TO_LEAK_OUTSIDE%
Run Code Online (Sandbox Code Playgroud)

该脚本用于SETLOCAL将环境与批处理文件想要执行的任何操作隔离开来,但这会导致一个问题:最后我确实希望以某种非常具体的方式修改调用者的环境,但是会SETLOCAL阻止这种情况(更改将立即撤消)批处理文件退出).ENDLOCAL在设置路径之前我也无法调用,因为它将环境恢复到其原始状态,消除了变量的值,因此我无法将其值附加到路径.

有没有办法设置路径而忽略SETLOCAL有效?或者,是否有任何技巧可以明确地保持变量的值在调用时被消除ENDLOCAL

我知道可以使用临时文件作为可以绕过ENDLOCAL屏障的容器,但是欢迎更优雅的解决方案.

windows batch-file environment-variables

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

从for循环形成一个数组

我有一个for循环,我逐个获取所有值,但我需要将这些值组成一个数组.

任何人都可以让我知道如何将所有值组成一个数组.

for (var i = 0; i < marray.length; i++) {
    mId = marray[i].id;
    var yourArray = [];
    yourArray.push(marray);
    console.log(marray);
}
Run Code Online (Sandbox Code Playgroud)

从上面的代码得到的输出是: ["0123"] and ["3456"]

But the expected output is ["0123","3456"]
Run Code Online (Sandbox Code Playgroud)

javascript

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