我开始学习OO几天就回来,我与程序编码相当确定的,但显然这是不够的,我想成为一个精通编码器有很多的经验和知识,所以首先要完全了解必须OO其次是我认为合适的设计模式.
无论如何,我有一件事我被困住了,我不太关注......
静态变量......我理解静态变量即使包含的函数执行完毕也不会丢失它的值,如果再次执行相同的函数,它将保持它的值,等等.
但是我不明白你现在究竟能分配给静态变量的是什么?关于stackoverflow状态的手册和无数问题,您无法将表达式分配给静态变量.
所以我阅读了PHP手册,找出究竟是什么被认为是表达式?手册的答案是(我引用):
"在PHP中,你写的几乎任何东西都是表达式.定义表达式的最简单但最准确的方法是"任何有价值的东西".
"当你输入"$ a = 5"时,你将'5'分配给$ a.'5',显然,值为5,或者换句话说'5'是表达式"
http://php.net/manual/en/language.expressions.php
现在,当您阅读手册中的变量范围时,他们就是这个例子:
function test()
{
static $a = 0;
echo $a;
$a++;
}
Run Code Online (Sandbox Code Playgroud)
因此,关于变量范围的手册说静态$ a = 0; 很好,而关于表达式的手册说$ a = 5,将是一个表达式.这基本上是一回事,只是0而不是5 ......
所以我现在有点困惑.
现在究竟什么是表达式,我究竟能够或不能分配给静态变量?:)
我正在尝试使用ItemLookup循环遍历Amazon Product API为所请求的产品返回的browsenodes数组,但我无法弄清楚如何可靠地执行它,因为返回的数组总是具有不同的级别.
我在这里寻找其他答案,例如建议使用SimpleXML迭代器,但这不起作用并抛出异常,因为它无法解析为xml ...
亚马逊返回的数组如下所示:
[BrowseNodes] => SimpleXMLElement Object
(
[BrowseNode] => Array
(
[0] => SimpleXMLElement Object
(
[BrowseNodeId] => 172659
[Name] => Televisions
[Ancestors] => SimpleXMLElement Object
(
[BrowseNode] => SimpleXMLElement Object
(
[BrowseNodeId] => 1266092011
[Name] => Television & Video
[Ancestors] => SimpleXMLElement Object
(
[BrowseNode] => SimpleXMLElement Object
(
[BrowseNodeId] => 493964
[Name] => Categories
[IsCategoryRoot] => 1
[Ancestors] => SimpleXMLElement Object
(
[BrowseNode] => SimpleXMLElement Object
(
[BrowseNodeId] => 172282
[Name] => Electronics
) …Run Code Online (Sandbox Code Playgroud)