这里的交易是我有一个包含17个元素的数组.我希望在一定时间内获得我需要的元素,并从阵列中永久删除它们.
这是代码:
$name = $post['name'];
$email = $post['email'];
$address = $post['address'];
$telephone = $post['telephone'];
$country = $post['country'];
unset($post['name']);
unset($post['email']);
unset($post['address']);
unset($post['telephone']);
unset($post['country']);
Run Code Online (Sandbox Code Playgroud)
是的,代码很难看,不需要打击.如何让这个看起来更好?
例:
list($fruit1, $fruit2) = array('apples', 'oranges');
Run Code Online (Sandbox Code Playgroud)
上面的代码当然可行,但代码如下:
list($fruit1, $fruit2) = array('fruit1' => 'apples', 'fruit2' => 'oranges');
Run Code Online (Sandbox Code Playgroud)
得到: Notice: Undefined offset: 1 in....
有没有办法以某种方式用列表来引用命名键list('fruit1' : $fruit1),你有没有看到这样的计划用于将来的版本?
在CoffeeScript,Clojure,ES6和许多其他语言中,我们对对象/贴图/等进行了解构,如下所示:
obj = {keyA: 'Hello from A', keyB: 'Hello from B'}
{keyA, keyB} = obj
Run Code Online (Sandbox Code Playgroud)
我在php中找到了这个list函数,它允许你像这样构造数组:
$info = array('coffee', 'brown', 'caffeine');
list($drink, $color, $power) = $info;
Run Code Online (Sandbox Code Playgroud)
有没有办法在PHP中解构对象或关联数组?如果不在核心库中,也许有人写了一些智能助手功能?
我不是 PHP开发人员,但我正在评估PHP5应用程序的安全性.
作者依赖extract($_POST)并extract($_GET)在某些地方,不在职能范围内.
我的建议是相应地调用extract($_POST, EXTR_PREFIX_ALL, 'form')和更改代码,但他的立场是任何变量在后续包含中被重新定义.
例如,我可以通过提供_ENV=somethingpost值来轻松更改超全局,但是superglobals是数组,我将它们变成字符串,我不确定它是否会产生邪恶效果.
我可以看看几个isset()用途并从那里向后退.但我想有这种攻击不需要知识或占卜来源.
是否有一些有趣的变量可以设置/更改,也许在PHP的内部?
谢谢
有没有一种安全的方法来自动分配发布数组中的键?以下是错误方式的两个例子......
foreach( $_POST as $key => $value ) {
$$key = $value;
}
Run Code Online (Sandbox Code Playgroud)
要么
extract($_POST)
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法,或者最好是编码:
$foo = $_POST('foo');
$bar = $_POST('bar');
....
Run Code Online (Sandbox Code Playgroud)
对于我表格中的所有50个输入?
(发布的信息将被插入到数据库中).
我正在尝试学习php,我在foreach循环中看到了这是什么意思?我理解&$ var它直接引用了对象的内存地址.但是$$ var意味着什么?究竟是什么?
这是一个例子.
foreach($this->vars as $key => $value)
{
$$key = $value;
echo "$$Key: " . $$key;
echo "Key: " . $key;
echo "<br/>";
echo "Value: " . $value;
}
Run Code Online (Sandbox Code Playgroud)