我有一个像这样的构造函数:
public function __construct($data)
{
$this->_data = new SimpleXMLElement($data);
}
Run Code Online (Sandbox Code Playgroud)
哪个好.但是,我想提供传递simplexmlelement或字符串的机会.
就像是:
public function __construct($data)
{
if (is_string($data)) {
$data = new SimpleXMLElement($data);
}
$this->_data = $data;
}
Run Code Online (Sandbox Code Playgroud)
这是不好的做法吗?
我的想法是,客户端代码可以决定它想要预先做多少工作.但它会导致任何问题吗?
在phpspec中,如何测试类属性是否包含特定类型的数组?
例如:
class MyClass
{
private $_mySpecialTypes = array();
// Constructor ommitted which sets the mySpecialTypes value
public function getMySpecialTypes()
{
return $this->_mySpecialTypes;
}
}
Run Code Online (Sandbox Code Playgroud)
我的规格看起来像这样:
public function it_should_have_an_array_of_myspecialtypes()
{
$this->getMySpecialTypes()->shouldBeArray();
}
Run Code Online (Sandbox Code Playgroud)
但我想确保数组中的每个元素都是类型 MySpecialType
什么是在phpspec中做到这一点的最好方法?
相对于字母位置增加php中的字符的工作方式如下:
$a = 'a';
++$a;
echo $a;
Run Code Online (Sandbox Code Playgroud)
输出为'b'
但是,是否可以将位置增加倍数,例如10.
$a = 'a';
$a += 2;
echo $a;
Run Code Online (Sandbox Code Playgroud)
这输出一个不是'c'的整数
PHP中的字符串到int的转换规则是什么?
例如,我有以下返回0:
var_dump((int)"test0");
var_dump((int)"test1");
var_dump((int)"test2");
Run Code Online (Sandbox Code Playgroud)
并且看起来如果字符串以数字开头,那么它将修剪字符并仅使用数字部分.如下:
var_dump((int)"1test");
var_dump((int)"2test");
var_dump((int)"3test");
Run Code Online (Sandbox Code Playgroud)
这些分别返回1,2和3.
现在,这是一个明确的规则,还是有例外?
在magento中使用平面目录选项时,为什么magento有以下表格:
flat_catalog_product_1
flat_catalog_product_2
flat_catalog_product_3
Run Code Online (Sandbox Code Playgroud)
为什么不只是一张单桌?
如果我有以下数组:
array(
'var1' => 123,
'var2' => 234,
'var3' => 345
);
Run Code Online (Sandbox Code Playgroud)
我想提取其中的特定部分来构建一个新数组,即 var1 和 var3。
我想要的结果是:
array(
'var1' => 123,
'var3' => 345
);
Run Code Online (Sandbox Code Playgroud)
发布的示例非常精简,实际上数组具有更多数量的键,我希望提取更多数量的键,并且某些键可能存在也可能不存在。
有没有内置的 php 函数可以做到这一点?
编辑:
要提取的键将被硬编码为类中的数组,即 $this->keysToExtract
如果单例被认为对全局状态不利,特别是可能影响代码主要执行的状态,那么应该如何处理全局状态呢?
想到的直接事情是:
我不能看到除了单身之外的任何其他方式来访问这些,如App()类或类似的?