标签: unset

解析错误:语法错误,意外'未设置'(T_UNSET)

我使用简单的php unset()函数来删除和索引数组,但它显示错误

Parse error: syntax error, unexpected 'unset' (T_UNSET)
Run Code Online (Sandbox Code Playgroud)

错误.这是syntex

echo $totalArray  =     unset($linkExtHelp[0]); 
Run Code Online (Sandbox Code Playgroud)

提前致谢.

php syntax unset

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

PHP | 通过重新排序从数组中删除元素?

如何删除数组的元素,然后重新排序,而不在数组中有空元素?

<?php
   $c = array( 0=>12,1=>32 );
   unset($c[0]); // will distort the array.
?>
Run Code Online (Sandbox Code Playgroud)

答案/解决方案:array array_values(array $ input).

<?php
   $c = array( 0=>12,1=>32 );
   unset($c[0]);
   print_r(array_values($c));
   // will print: the array cleared
?>
Run Code Online (Sandbox Code Playgroud)

php arrays pointers return unset

9
推荐指数
1
解决办法
7268
查看次数

php - unset $ this

我创建了一个类似于文件包装器的类.当用户调用delete方法时,我想取消设置对象(实际上是$ this).有办法(解决方法)吗?手册说不,没办法......

php file this wrapper unset

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

Magento:为所有孩子阻止unsetChild?

我知道:

<action method="unsetChild"><name>as</name></action>
Run Code Online (Sandbox Code Playgroud)

是否可以删除一行中的所有孩子?例如:

<action method="unsetChild"><name>*</name></action>
Run Code Online (Sandbox Code Playgroud)

或类似的东西..?

更新 - 答案:

<action method="unsetChildren"/>
Run Code Online (Sandbox Code Playgroud)

似乎很合理地做了这个伎俩..

layout block magento unset

9
推荐指数
1
解决办法
3498
查看次数

将变量与设置取消设置为''

是否有更好的形式来做以下其中一种?如果不是,其中一个比另一个快吗?

unset($variable);
Run Code Online (Sandbox Code Playgroud)

或者做

$variable = '';
Run Code Online (Sandbox Code Playgroud)

php variables unset

8
推荐指数
1
解决办法
1961
查看次数

Javascript未设置数组

如何在javascript中取消设置数组?我只是想把它清空 - 所以它里面没有任何关键或任何东西

javascript arrays unset

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

在迭代期间取消设置数组值是否会节省内存?

这是一个简单的编程问题,来自于我对PHP如何在foreach循环中处理数组复制和取消设置缺乏了解.就像这样,我有一个阵列从我想要改变的外部源格式来找我.一个简单的例子是:

$myData = array('Key1' => array('value1', 'value2'));
Run Code Online (Sandbox Code Playgroud)

但我想要的是:

$myData = array([0] => array('MyKey' => array('Key1' => array('value1', 'value2'))));
Run Code Online (Sandbox Code Playgroud)

所以我采取第一个$myData并将其格式化为第二个$myData.我的格式化算法完全没问题.我的问题在于找到一种节省内存的方法,因为这些数组可能会有点笨拙.因此,在我的foreach循环中,我将当前数组值复制到新格式,然后我从原始数组中取消设置我正在使用的值.例如:

$formattedData = array();
foreach ($myData as $key => $val) {
    // do some formatting here, copy to $reformattedVal

    $formattedData[] = $reformattedVal;

    unset($myData[$key]);
}
Run Code Online (Sandbox Code Playgroud)

这是unset()一个好主意吗?即,它是否节省了内存,因为我复制了数据并且不再需要原始值?或者,PHP是否自动垃圾收集数据,因为我没有在任何后续代码中引用它?

代码运行正常,到目前为止,我的数据集的大小可以忽略不计,无法测试性能差异.我只是不知道我是否为自己设置了一些奇怪的错误或以后的CPU命中.

感谢您的任何见解.
-sR

php foreach memory-optimization unset

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

PHP unset vs array_pop?

如果我想删除数组的最后一个元素,我可以使用以下两个代码之一:

  1. array_pop($array); (不使用返回值)

  2. unset($array[count($array) -1]);

它们之间是否有任何性能或语义差异?

如果没有,哪个更好?

php arrays unset

8
推荐指数
3
解决办法
6839
查看次数

PHP:使用if语句从数组取消设置

我正在尝试使用if语句取消设置特定值。我的代码是

$fruits = ['apple', 'orange', 'melon', 'banana', 'pineapple'];

for ($i = 0 ; $i < count($fruits); $i++){ 
    if ($fruits[$i] == 'apple' || $fruits[$i] == 'orange' || $fruits[$i] == 'melon' || $fruits[$i] == 'banana'){
        unset($fruits[$i]);
    }
 }
 print_r($fruits);
Run Code Online (Sandbox Code Playgroud)

我希望它能回来

Array
(
  [4] => pineapple
)
Run Code Online (Sandbox Code Playgroud)

但是结果是

Array
(
  [3] => banana
  [4] => pineapple
)
Run Code Online (Sandbox Code Playgroud)

为什么不从阵列中设置“香蕉”?

php arrays unset

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

为什么PHP的垃圾收集器会降低性能,以及如何在没有它的情况下管理内存?

这与PHP 5.3 Cli应用程序有关,该应用程序以复杂的方式处理大量数据,需要数小时才能运行.有人发现关闭垃圾收集使其运行速度更快(可能高达50%).

我遇到的唯一提到这种性能影响的文章是http://derickrethans.nl/collecting-garbage-performance-considerations.html.我不确定我是否完全遵循它,但它似乎表明它只适用于具有大量循环引用的代码.

有人可以对此有所了解吗?

另外,鉴于我们已关闭gc,有没有办法手动减少内存?建议使用unset().快速测试表明,无论对象的大小如何,unset()都会释放80个左右的字节.这表明它只是取消了参考,这是我在网上看到的.我是否正确地认为,当变量超出范围时,即使没有垃圾收集,这些80个字节也会被释放?

php garbage-collection memory-management unset

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