相关疑难解决方法(0)

php中的函数返回的访问数组

我正在使用模板引擎在我想要的网站中插入代码.

我写了一个函数来测试一些非常简单的东西:

myfunction() { return '($this->data["a"]["b"] ? true : false)'; }
Run Code Online (Sandbox Code Playgroud)

问题是,$ this-> data是私有的,我无法在任何地方访问它,所以我必须使用getData(); 这导致我的问题.

$this->getData()['a']['b']
Run Code Online (Sandbox Code Playgroud)

不起作用,并且首先分配值也不会因为它将直接在if()块中使用.

有任何想法吗?

php arrays

88
推荐指数
3
解决办法
5万
查看次数

用于解除引用函数结果的PHP语法

背景

在我定期使用的每种其他编程语言中,操作函数的返回值很简单,而不会声明一个新变量来保存函数结果.

但是,在PHP中,这看起来并不那么简单:

example1(函数结果是一个数组)

<?php 
function foobar(){
    return preg_split('/\s+/', 'zero one two three four five');
}

// can php say "zero"?

/// print( foobar()[0] ); /// <-- nope
/// print( &foobar()[0] );     /// <-- nope
/// print( &foobar()->[0] );     /// <-- nope
/// print( "${foobar()}[0]" );    /// <-- nope
?>
Run Code Online (Sandbox Code Playgroud)

example2(函数结果是一个对象)

<?php    
function zoobar(){
  // NOTE: casting (object) Array() has other problems in PHP
  // see e.g., http://stackoverflow.com/questions/1869812
  $vout   = (object) Array('0'=>'zero','fname'=>'homer','lname'=>'simpson',);
  return $vout;
}

//  can php say "zero"? …
Run Code Online (Sandbox Code Playgroud)

php arrays syntax function

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

在一行代码中爆炸并获取值

你能在一行代码中写下以下内容吗?

$foo = explode(":", $foo);
$foo = $foo[0];
Run Code Online (Sandbox Code Playgroud)

php arrays explode

19
推荐指数
3
解决办法
9004
查看次数

从函数返回的PHP数组中获取元素

我不确定这是否可能,但如果它是......我无法弄清楚如何做到这一点

我想从一个函数返回的数组中获取一个特定的元素,而不是先将它传递给一个数组......就像这样......

$item = getSomeArray()[1];


function getSomeArray(){
     $ret = Array();
     $ret[0] = 0;
     $ret[1] = 100;
     return $ret;
}
Run Code Online (Sandbox Code Playgroud)

这个的正确语法是什么?

php

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

从php中的函数调用中访问数组元素

可能重复:
当使用从函数返回的数组时,如何避免PHP中的临时变量

function array_test()  
{ 
    return array(0, 1, 2); 
}  

echo array_test()[0];
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么这段代码不起作用?

php

8
推荐指数
0
解决办法
507
查看次数

访问函数返回的数组

反正有没有临时变量直接访问数组中返回的数据?

目前,我的代码如下:

function getData($id) {
    // mysql query
    return mysql_fetch_array($result);
}

$data = getData($id);
echo $data['name'];
Run Code Online (Sandbox Code Playgroud)

是否有直接的方法来获取没有临时变量的返回数据?

php arrays variables return function

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

为什么我不能在函数的返回值上使用数组索引?

为什么我不能这样做?

explode(',','1,2,3', 1)[0]
Run Code Online (Sandbox Code Playgroud)

每种其他语言都支持它.

答案我正在寻找:(因为人们似乎认为这是一个毫无意义的咆哮)

在变量和返回值的行为方式之间是否存在某种差异?

这是一个设计决定吗?他们只是懒惰吗?有没有关于语言的构建方式,这使得这非常难以实现?

php language-features language-design

5
推荐指数
1
解决办法
420
查看次数

属性为数组

我想在不使用额外变量的情况下做这样的事情:

class className {
  public static function func(){
    return array('true','val2');
  }
}

if(className::func()[0]) {
  echo 'do?ru';
} else {
  echo 'Yanl??';
}
Run Code Online (Sandbox Code Playgroud)

php arrays

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

如何在不指定数组变量的情况下访问数组元素?

例如:

echo explode('@',$var); //but only echoing element 1 or 2 of the array?
Run Code Online (Sandbox Code Playgroud)

代替:

$variable = explode('@',$var);
echo $variable[0];
Run Code Online (Sandbox Code Playgroud)

谢谢.

php

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