小编Sea*_*ney的帖子

在PHP中,什么是闭包,为什么它使用"use"标识符?

我正在检查一些PHP 5.3.0功能,并在网站上遇到一些看起来很有趣的代码:

public function getTotal($tax)
{
    $total = 0.00;

    $callback =
        /* This line here: */
        function ($quantity, $product) use ($tax, &$total)
        {
            $pricePerItem = constant(__CLASS__ . "::PRICE_" .
                strtoupper($product));
            $total += ($pricePerItem * $quantity) * ($tax + 1.0);
        };

    array_walk($this->products, $callback);
    return round($total, 2);
}
Run Code Online (Sandbox Code Playgroud)

作为匿名函数的一个例子.

有人知道吗?有文件吗?如果它被使用它看起来很邪恶?

php closures

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

如何忽略父css样式

我想知道如何忽略父样式并使用默认样式(无).我将以我的具体案例为例,但我很确定这是一个普遍的问题.

<style>
#elementId select {
    height:1em;
}
</style>

<div id="elementId">
    <select name="funTimes" style="" size="5">
        <option value="test1">fish</option>
        <option value="test2">eat</option>
        <option value="test3">cows</option>
    </select>
</div>
Run Code Online (Sandbox Code Playgroud)

我不想解决这个问题的方法:

  • 我无法编辑设置了"#elementId select"的样式表,我的模块将无法访问该样式表.
  • 最好不要使用style属性覆盖高度样式.

例如,使用firebug,我可以关闭父式,一切都很好,这就是我想要的效果.

一旦设置了样式,它可以被禁用还是必须被覆盖?

css

73
推荐指数
4
解决办法
18万
查看次数

如何检查目录是否可以在PHP中写入?

有谁知道如何检查目录是否可以在PHP中写入?

该功能is_writable不适用于文件夹.(编辑:它确实有效.请参阅接受的答案.)

php directory permissions

59
推荐指数
4
解决办法
7万
查看次数

重新定义类方法或类

有没有办法在不使用典型继承的情况下重新定义类或其某些方法?例如:

class third_party_library {
    function buggy_function() {
        return 'bad result';
    }
    function other_functions(){
        return 'blah';
    }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能取代buggy_function()?显然这就是我想做的

class third_party_library redefines third_party_library{
    function buggy_function() {
        return 'good result';
    }
    function other_functions(){
        return 'blah';
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的两难:我更新了破坏我代码的第三方库.我不想直接修改库,因为将来的更新可能会再次破坏代码.我正在寻找一种无缝的方法来替换类方法.

我发现这个图书馆说它可以做到,但我很谨慎,因为它已经4岁了.

编辑:

我应该澄清一下,由于框架限制,我无法将类重命名third_party_librarymagical_third_party_library或其他任何内容.

为了我的目的,是否可以只在类中添加一个函数?我认为你可以用C#做​​一个叫做"部分类"的东西.

php methods class redefine

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

开发的推荐error_reporting()设置是什么?那么E_STRICT呢?

通常我E_ALL会看到PHP可能会对我的代码说些什么来尝试改进它.

我刚刚注意到一个错误常数E_STRICT,但从未使用或听说过它,这是一个用于开发的好设置吗?手册说:

运行时通知.允许PHP建议对代码进行更改,以确保代码的最佳互操作性和向前兼容性.

所以我想知道我是否使用最好的error_reporting水平E_ALL或者是否会E_STRICT是最好的?或者还有其他我尚未学习的组合吗?

php error-reporting

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

在PHP中清理文件路径

问候,我希望我的小程序安全,以便潜在的恶意用户无法查看服务器上的敏感文件.

    $path = "/home/gsmcms/public_html/central/app/webroot/{$_GET['file']}";


    if(file_exists($path)) {
        echo file_get_contents($path);
    } else {
        header('HTTP/1.1 404 Not Found');
    }
Run Code Online (Sandbox Code Playgroud)

在我的脑海中,我知道像'../../../../../../etc/passwd'这样的输入会有麻烦,但想知道我应该期待什么其他有意义的输入以及如何防止他们.

php security sanitization

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

如何检查JavaScript中是否加载了变量?

如何查看某个对象是否已加载,如果没有加载,如何加载,如下所示?

if (!isObjectLoaded(someVar)) {
    someVar= loadObject();
}
Run Code Online (Sandbox Code Playgroud)

javascript object

25
推荐指数
3
解决办法
7万
查看次数

使用Apache .htaccess设置Php $ _SERVER值($ _SERVER ['something'])

是否可以使用.htaccess或其他apache权限在php数组$ _SERVER中设置自定义服务器值.

例如

if($_SERVER['is_special']) {
    echo "Yeah for us!";
} else {
    echo "No you fool!";
}
Run Code Online (Sandbox Code Playgroud)

我意识到我问了很多问题,答案是否定的,所以请随意这么说.

php apache .htaccess

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

PDO对占位符有效的字符

在PHP中使用PDO,我们限制使用哪些字符.我试过在文档和在线查找,但无济于事.

我找到了一个帖子,其中一个用户在名称中使用了一个打破了查询的超级用户.我正在编写一个动态生成这些名称的函数,因为连字符不是nos,我想知道是否有一个备选列表.

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>
Run Code Online (Sandbox Code Playgroud)

那么在这个例子中,字符串':color'中允许哪些字符?

php pdo

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

如何在PHP中解析Apache的错误日志?

我想创建一个脚本来解析或理解apache的错误日志,看看最近的错误是什么.我想知道是否有人有这样做或有任何想法从哪里开始?

php apache error-log

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