我对正则表达式很糟糕.我试图取代这个:
public static function camelize($word) {
return preg_replace('/(^|_)([a-z])/e', 'strtoupper("\\2")', $word);
}
Run Code Online (Sandbox Code Playgroud)
使用带有匿名函数的preg_replace_callback.我不明白\\ 2是做什么的.或者就此而言preg_replace_callback的工作原理.
实现这一目标的正确代码是什么?
a = b = c = d = 5
puts (a) >> 5
puts (b) >> 5
puts (b) >> 5
puts (b) >> 5
a= a+1
puts (a) >> 6
puts (b) >> 5
Run Code Online (Sandbox Code Playgroud)
我发现分配这样的值没有问题.我的问题是,应该像上面给出的那样分配还是像这样?
a , b, c, d = 5, 5, 5, 5
Run Code Online (Sandbox Code Playgroud) 我用PHP 7测试了返回类型.
我创建了一个简单的脚本来测试PHP 7的返回类型:
<?php
Class Obj {
public function __construct(){
}
public function test(): string { //a string needs to be returned
return "ok";
}
}
function foo(): Obj { //instance of Obj needs to be returned
return new Obj();
}
$o = foo();
echo $o->test(); // output: ok
Run Code Online (Sandbox Code Playgroud)
现在,当您指定返回类型时,在其他编程语言中,void
这意味着您无法返回任何内容,否则您将收到错误.所以我写了这个脚本:
<?php
function foo(): void {
}
foo();
Run Code Online (Sandbox Code Playgroud)
现在在上面的脚本中,预期的输出是什么.相反,它给了我一个致命的错误:
致命错误:foo()的返回值必须是void的实例,在第2行返回none
我的问题是(我找不到),在PHP 7中会有类似的void
类型吗?
我正在尝试进行此扩展:
extension UIViewController
{
class func initialize(storyboardName: String, storyboardId: String) -> Self
{
let storyboad = UIStoryboard(name: storyboardName, bundle: nil)
let controller = storyboad.instantiateViewControllerWithIdentifier(storyboardId) as! Self
return controller
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到编译错误:
错误:无法将'UIViewController'类型的返回表达式转换为返回类型'Self'
可能吗?我也想成为init(storyboardName: String, storyboardId: String)
$param = k.chomp.split("\t")
Run Code Online (Sandbox Code Playgroud)
如何找到$param
它是一个数组的长度?实际上在我写作的时候
puts $param.class
Run Code Online (Sandbox Code Playgroud)
我得到了类似数组的o/p.现在我如何找到这个数组的长度?
我试过了,$param.length
但它不起作用.
警告:mysqli_connect():( HY000/1045):第6行的C:\ Users\xampp\htdocs\PHP_Login_Script\config.php中的用户'用户名'@'localhost'(使用密码:YES)拒绝访问
警告:mysqli_real_escape_string()要求参数1为mysqli,第10行的C:\ Users\xampp\htdocs\PHP_Login_Script\login.php中给出布尔值
警告:mysqli_real_escape_string()要求参数1为mysqli,布尔值在第11行的C:\ Users\xampp\htdocs\PHP_Login_Script\login.php中给出
警告:mysqli_query()要求参数1为mysqli,第15行的C:\ Users\xampp\htdocs\PHP_Login_Script\login.php中给出布尔值
警告:mysqli_fetch_array()期望参数1为mysqli_result,在第16行的C:\ Users\xampp\htdocs\PHP_Login_Script\login.php中给出null
警告:mysqli_num_rows()期望参数1为mysqli_result,在第19行的C:\ Users\xampp\htdocs\PHP_Login_Script\login.php中给出null
即使我的配置文件是这样的,我在localhost上也会收到此错误:
<?php
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
?>
Run Code Online (Sandbox Code Playgroud)
这曾经有用,但现在已不复存在了.这段代码有问题还是现在不能正常工作?这是我正在进行的教程.
我经常使用echo来调试功能代码:
public function MyFunc() {
// some code...
echo "OK";
// some code...
}
Run Code Online (Sandbox Code Playgroud)
如何检查我的函数print/echo是什么?
(伪代码):
MyFunc();
if (<when something was printed>){
echo "You forgot to delete echo calls in this function";
}
Run Code Online (Sandbox Code Playgroud) 我有以下代码,从今天的日期开始返回接下来的13个星期一.
for($i=1; $i<=13; $i++){
echo date("Y-m-d", strtotime('+'.$i.' Monday'))."<br>";
}
Run Code Online (Sandbox Code Playgroud)
我希望能够修改它,这样它不仅可以显示接下来的13个星期一,还可以显示刚刚过去的星期一.
我尝试修改代码如下,但我得到下一个星期一返回的两个实例.
for($i=-1; $i<=13; $i++){
echo date("Y-m-d", strtotime('+'.$i.' Monday'))."<br>";
}
Run Code Online (Sandbox Code Playgroud)
数据已返回.
2015-04-13
2015-04-20 //<--
2015-04-20
2015-04-27
2015-05-04
2015-05-11
2015-05-18
2015-05-25
2015-06-01
2015-06-08
2015-06-15
2015-06-22
2015-06-29
2015-07-06
2015-07-13
Run Code Online (Sandbox Code Playgroud)
关于我如何实现这一点的任何想法?
为什么在PHP 7中无法声明具有static
返回类型的接口?
假设我有以下课程:
interface BigNumber {
/**
* @param BigNumber $that
*
* @return static
*/
public function plus(BigNumber $that);
}
class BigInteger implements BigNumber { ... }
class BigDecimal implements BigNumber { ... }
Run Code Online (Sandbox Code Playgroud)
我想执行的返回类型plus()
的方法static
,那就是:
BigInteger::plus()
必须退货 BigInteger
BigDecimal::plus()
必须退货 BigDecimal
我可以通过以下方式声明接口:
public function plus(BigNumber $that) : BigNumber;
Run Code Online (Sandbox Code Playgroud)
但这并没有强制执行上述规定.我想做的是:
public function plus(BigNumber $that) : static;
Run Code Online (Sandbox Code Playgroud)
但到目前为止,PHP 7并不满意:
PHP解析错误:语法错误,意外'静态'(T_STATIC)
是否有特定原因,或者这是一个应该报告的错误?
当我运行它时,第一个正确创建为日期.第二个失败,返回a boolean
,所以我无法格式化.时间是否超出范围?
//works correctly
$startDate = "2015-05-06 10:49:20.637133";
$start = DateTime::createFromFormat('Y-m-d h:m:s.u',$startDate);
echo $start->format('m/d/y');
//doesn't work correctly
$startDate = "2015-05-12 15:49:06.821289";
$start = DateTime::createFromFormat('Y-m-d h:m:s.u',$startDate);
echo $start->format('m/d/y');
Run Code Online (Sandbox Code Playgroud)