我想使用foreach带变量的循环,但是这个变量可以是许多不同的类型,NULL例如.
所以在foreach我测试它之前:
if(is_array($var)){
foreach($var as ...
Run Code Online (Sandbox Code Playgroud)
但我意识到它也可以是一个实现Iterator接口的类.也许我是盲人,但如何检查类是否实现接口?是否有类似is_a函数或inherits运算符的东西?我发现class_implements,我可以使用它,但也许有更简单的东西?
第二,更重要的是,我认为这个函数存在,足以检查变量is_array或"实现Iterator接口"还是应该测试更多的东西?
我回答了一个问题(链接),我在另一个类的构造函数中使用了新对象的创建,这里是示例:
class Person {
public $mother_language;
function __construct(){ // just to initialize $mother_language
$this->mother_language = new Language('English');
}
Run Code Online (Sandbox Code Playgroud)
我收到了用户"Matija"(他的个人资料)的评论,他写道:你永远不应该在对象consturctor中实例化一个新对象,应该从外部推送依赖,所以使用这个类的人都知道这个类依赖于什么!
一般来说,我同意这一点,我理解他的观点.
但是,我过去常常这样做,例如:
ArrayAccess接口)的对象),这个类将用于另一个类,具有这样的列表对象,DateTime对象,include(或自动加载)依赖类,一个应该没有错误的问题,因为依赖对象可以是非常大的数,将它们全部传递给类构造函数可能会很长而且不清楚,例如
$color = new TColor('red'); // do we really need these lines?
$vin_number = new TVinNumber('xxx');
$production_date = new TDate(...);
...
$my_car = new TCar($color, $vin_number, $production_date, ...............);
Run Code Online (Sandbox Code Playgroud)因为我在Pascal"出生",然后在Delphi,我有一些习惯.在Delphi(以及FreePascal作为其竞争对手)中,这种做法经常发生.例如,有一个TStrings类处理字符串数组,并且存储它们不使用arrays而是另一个类TList,它提供了一些有用的方法,而TStrings只是某种类型的接口.该TList对象是私有声明的,并且不能从外部访问,但是getter和setter TStrings.
请解释一下,避免在构造函数中创建对象真的很重要吗?
我已经阅读了这个讨论, …
我有两个表名为类别和内容(每个类别可以有很多内容),这是我的查询
SELECT * FROM categories ca
LEFT JOIN content co ON co.cat_id=ca.id
Run Code Online (Sandbox Code Playgroud)
我想对它进行限制,查询为每个类别获取10个内容.
我应该如何查询?
我在我的应用程序中使用paypal支付网关IPN付款.
付款成功后,我正确收到IPN回复.
收到后我发回来进行验证.
$ch = curl_init();
$paypalUrl = PAYPAL_URL;
curl_setopt($ch, CURLOPT_URL, $paypalUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_field);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$res = curl_exec($ch);
Run Code Online (Sandbox Code Playgroud)
现在我多次收到相同的IPN响应(大约9次).我按以下格式发送变更的IPN响应:
cmd=_notify-validate&orderUUID=eac962fe-3a0a-4b26-be89-e5ccf54ee2cb&
mc_gross=15.00&settle_amount=11.58&
protection_eligibility=Ineligible&payer_id=LR3LZ8R978ZK8&tax=0.00
&payment_date=06%3A55%3A17+Jun+05%2C+2013+PDT&payment_status=Completed
&charset=windows1252&first_name=abc&option_selection1=&option_selection2=&
mc_fee=0.74&exchange_rate=0.812061¬ify_version=3.7
&settle_currency=USD&custom=&payer_status=verified&business=business%40mydomain.com
&quantity=1&verify_sign=AFcWxV21C7fd0v3bYYYRCpSSRl31AlU7JAwS8--HoB6lJfimizlVxnVa&payer_email=personal%40mydomain.com&option_name1=tour&option_name2=abc+abc&txn_id=6RU07240YB682730C&payment_type=instant&last_name=abc&receiver_email=business%40mydomain.com&payment_fee=&receiver_id=LW9JSM57BYH5Q&txn_type=web_accept&item_name=ite m+name&mc_currency=AUD&item_number=&residence_country=US&test_ipn=1&handling_amount=0.00 &transaction_subject=item+reserva!tion+for+1+spaces+on+Jun+06&payment_gross=&shipping=0.00&ipn_track_id=b85bc954da9e5
Run Code Online (Sandbox Code Playgroud)
多次接收相同响应的原因是什么?
正如我所说的那样,我们需要向PayPal发送200 OK以获取IPN响应,如果Paypal没有得到200 OK它再次重试......它是否相同?
在我的应用程序中,我只有当前位置的纬度和经度.我如何通过纬度和经度获得WOEID?
我使用vba函数获取单元格名称(取自Excel中的检索单元格名称)
Public Function CellName(oCell As Range) As Variant
Dim oName As Name
For Each oName In ThisWorkbook.Names
If oName.RefersToRange.Parent Is oCell.Parent Then
If Not Intersect(oCell, oName.RefersToRange) Is Nothing Then
CellName = oName.Name
Exit Function
End If
End If
Next
CellName = CVErr(xlErrNA)
End Function
Run Code Online (Sandbox Code Playgroud)
当单元格的名称不存在时,它会显示错误 - 这当然是预期的行为.但是,当我然后命名另一个单元格(我想要获取的名称)时,我的单元格中的错误仍然有效.重新计算没有帮助.我需要更改其他单元格的值(我可以更改其值或更改其公式中的另一个单元格的值)或其公式,以便重新计算该单元格中的值,因此我的单元格具有CellName函数得到适当的刷新.
我没有看到为什么这一点,当我命名我指向的单元格时,我能做些什么来简单地使单元格刷新?
这是Excel 2007,文件类型为xlsm.
如果我使用camanJS在我的图像上应用滤镜,一切都很好但是当我点击第二个滤镜时,它需要返回到原始图像并将其应用于该图像,但是目前它将第二个滤镜放在仍然保留的图像上有第一个过滤器.
这是我的HTML部分:
<table>
<tr>
<td><div id="photo"><canvas id="photoCanvas" width="500" height="500">Uw browser ondersteund geen canvas</canvas></div></td>
<td><div id="filterContainer">
<h4>Please select your photo effect.</h4>
<ul id="filters">
<li> <a href="#" id="normal">Normal</a> </li>
<li> <a href="#" id="vintage">Vintage</a> </li>
<li> <a href="#" id="lomo">Lomo</a> </li>
<li> <a href="#" id="clarity">Clarity</a> </li>
<li> <a href="#" id="sinCity">Sin City</a> </li>
<li> <a href="#" id="sunrise">Sunrise</a> </li>
<li> <a href="#" id="pinhole">Pinhole</a> </li>
</ul>
</div></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我创建了一个id为photoCanvas的画布,用于显示图像,我有一个列表,其中包含不同的过滤器,如果点击则会触发以下javascript部分:
$(function() {
Caman("#photoCanvas", "./images/183411_1871156496150_3955828_n.jpg", function () {
this.render();
});
var filters = $('#filters li a');
// originalCanvas …Run Code Online (Sandbox Code Playgroud) 我可以从两列创建关联数组吗?我希望列A为键,列B为值.
-------------
| id | name |
-------------
| 1 | sky |
-------------
| 2 | space |
Run Code Online (Sandbox Code Playgroud)
我想要一个像这样的结果的函数:
$ary=array('1'=>'sky','2'=>'space', ... );
Run Code Online (Sandbox Code Playgroud)
这个问题是否存在任何php函数?
我正在使用php,mysql和codeigniter.
php ×6
arrays ×2
mysql ×2
associative ×1
camanjs ×1
cell ×1
excel ×1
excel-2007 ×1
excel-vba ×1
foreach ×1
geocoding ×1
html5-canvas ×1
javascript ×1
jquery ×1
oop ×1
paypal ×1
sql ×1
vba ×1
yahoo ×1