我见过@某些功能的使用,如下所示:
$fileHandle = @fopen($fileName, $writeAttributes);
Run Code Online (Sandbox Code Playgroud)
这个符号有什么用?
考虑这两个例子......
$key = 'jim';
// example 1
if (isset($array[$key])) {
// ...
}
// example 2
if (array_key_exists($key, $array)) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
我很想知道其中任何一个是否更好.我一直使用第一个,但看到很多人在这个网站上使用第二个例子.
那么哪个更好?快点?更明确的意图?
只是想知道你是否可以帮我解决这个问题:
我有一个多维数组......
$my_array = array(
0 => array(
"name" => "john",
"id" => 4
),
1 => array(
"name" => "mark",
"id" => 152
),
2 => array(
"name" => "Eduard",
"id" => 152
)
);
Run Code Online (Sandbox Code Playgroud)
想知道什么是最快和最有效的方法来检查数组$ my_array是否包含任何具有键"id"及其值152的值.我不需要回显或使用任何值.如果数组中有任何ID为"key"且值为"152"的记录,我只需要检查(返回true).
在哪里isset或array_key_exist适合使用?
在我的情况下,两个都在工作.
if( isset( $array['index'] ) {
//Do something
}
if( array_key_exists( 'index', $array ) {
//Do something
}
Run Code Online (Sandbox Code Playgroud) 我已经离开PHP世界几年了,我最近继承了一个PHP项目.在PHP中应该相当容易的东西虽然让我望而却步.在Python中,我可以执行以下操作:
value = some_dict.get(unknown_key, default_value)
Run Code Online (Sandbox Code Playgroud)
我在PHP中做同样的第一个猜测是:
$value = $some_array[$unknown_key] || $default_value;
Run Code Online (Sandbox Code Playgroud)
但$value由于PHP不支持值短路,因此成为布尔值.我也得到了一个,Notice: Undefined index: the_key但我知道我可以通过加前缀来抑制它@.
我有没有办法在PHP中实现类似Python的行为dict.get(key, default)?我检查了PHP的数组函数列表,但没有什么突出的.
请看下面的代码
function GetAreaName($AreaCode)
{
switch ($AreaCode)
{
case 201: return 'New Jersey';
case 202: return 'Washington';
// this goes on till
case 999: return '';
}
}
Run Code Online (Sandbox Code Playgroud)
假设AreaCode是998,那么就必须经历这么多案件!我们怎样才能优化这个功能?(不使用数据库.)
我正在考虑构建一个数组并对其进行二进制搜索?但是这意味着每次调用该函数时都会重建数组?我们如何构建一次数组,缓存它并在每次调用此函数时重复使用?
print_r($p->attachments) 生产:
Array
(
[0] => stdClass Object
(
[id] => ...
[url] => http://...png
[slug] => ...
[title] => ...
[description] => ...
[caption] => ...
[parent] => ...
[mime_type] => image/png
[images] => ...
(
)
)
)
Run Code Online (Sandbox Code Playgroud)
我希望访问该url字段中的值
print_r($p->attachments[0]->url) 检索网址,但也产生: Undefined offset: 0
现在我可以通过调用来抑制错误print_r(@$p->attachments[0]->url),但有没有正确的方法来解决这个问题?
我无法修改$ p对象.
编辑:
正如所建议的,这里是来自Var_dump的响应($ p->附件)
array(1) {
[0]=>
object(stdClass)#322 (9) {
["id"]=>
int(1814)
["url"]=>
string(76) "..."
["slug"]=>
string(34) "..."
["title"]=>
string(34) "..."
["description"]=>
string(0) ""
["caption"]=>
string(53) "..."
["parent"]=> …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现基本用户注册RESTful api.我有一个html表单registerform.html,deregisterform.html,users.php,register.php和deregister.php,它们都粘贴在下面.
当我在浏览器中访问registerform.html时,我可以填写详细信息,users.php脚本会收到一个POST请求,并回显一个json响应,显示刚刚添加的用户的id号.我的问题是,当我使用deregister表单时,users.php脚本应该重新发送DELETE请求,但实际上是获取GET请求.我一直在寻找这个问题的答案,但我找不到解决方案.
registerform.html
<form action="users.php" method="POST">
Username: <input type="text" name="uname" /><br />
FirstName: <input type="text" name="fname" /><br />
Last Name: <input type="text" name="lname" /><br />
Date of Birth: <input type="date" name="dob" /><br />
Telephone: <input type="mob" name="tel" /><br />
Email: <input type="email" name="email1" /><br />
Confirm Email: <input type="email" name="email2" /><br />
Password: <input type="password" name="pass1" /><br />
Confirm Password: <input type="password" name ="pass2" /><br />
<input type="submit" value="Register" name="sub" />
<br/><A HREF="login.php">Already Registered? Login Here</A><br/>
</form> Run Code Online (Sandbox Code Playgroud)
deregisterform.html
php ×8
arrays ×5
caching ×1
dictionary ×1
html ×1
http ×1
http-delete ×1
object ×1
operators ×1
optimization ×1
performance ×1
python ×1
rest ×1