我正在检查一些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)
作为匿名函数的一个例子.
有人知道吗?有文件吗?如果它被使用它看起来很邪恶?
我想知道如何忽略父样式并使用默认样式(无).我将以我的具体案例为例,但我很确定这是一个普遍的问题.
<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)
我不想解决这个问题的方法:
例如,使用firebug,我可以关闭父式,一切都很好,这就是我想要的效果.
一旦设置了样式,它可以被禁用还是必须被覆盖?
有谁知道如何检查目录是否可以在PHP中写入?
该功能is_writable不适用于文件夹.(编辑:它确实有效.请参阅接受的答案.)
有没有办法在不使用典型继承的情况下重新定义类或其某些方法?例如:
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_library为magical_third_party_library或其他任何内容.
为了我的目的,是否可以只在类中添加一个函数?我认为你可以用C#做一个叫做"部分类"的东西.
通常我E_ALL会看到PHP可能会对我的代码说些什么来尝试改进它.
我刚刚注意到一个错误常数E_STRICT,但从未使用或听说过它,这是一个用于开发的好设置吗?手册说:
运行时通知.允许PHP建议对代码进行更改,以确保代码的最佳互操作性和向前兼容性.
所以我想知道我是否使用最好的error_reporting水平E_ALL或者是否会E_STRICT是最好的?或者还有其他我尚未学习的组合吗?
问候,我希望我的小程序安全,以便潜在的恶意用户无法查看服务器上的敏感文件.
$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'这样的输入会有麻烦,但想知道我应该期待什么其他有意义的输入以及如何防止他们.
如何查看某个对象是否已加载,如果没有加载,如何加载,如下所示?
if (!isObjectLoaded(someVar)) {
someVar= loadObject();
}
Run Code Online (Sandbox Code Playgroud) 是否可以使用.htaccess或其他apache权限在php数组$ _SERVER中设置自定义服务器值.
例如
if($_SERVER['is_special']) {
echo "Yeah for us!";
} else {
echo "No you fool!";
}
Run Code Online (Sandbox Code Playgroud)
我意识到我问了很多问题,答案是否定的,所以请随意这么说.
在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'中允许哪些字符?
我想创建一个脚本来解析或理解apache的错误日志,看看最近的错误是什么.我想知道是否有人有这样做或有任何想法从哪里开始?