草庐IT

proto_method_implemented

全部标签

PHP7 : Methods with a scalar type declaration refuse to type juggle NULL values, 即使在弱/强制模式下

截至PHP7.0,标量类型提示int、float、string和bool可以包含在方法签名中。默认情况下,这些类型声明以弱/强制模式(或“typejuggling”模式)运行。根据PHPmanual:PHPwillcoercevaluesofthewrongtypeintotheexpectedscalartypeifpossible.Forexample,afunctionthatisgivenanintegerforaparameterthatexpectsastringwillgetavariableoftypestring.但即使可以将NULL强制转换为整数0,具有int类型提

PHP 术语 : difference between getters and public methods?

我的问题更多是关于术语而不是技术细节(或者是?)。类中的getter方法和公共(public)方法有什么区别?它们是同一个还是它们之间有区别?我问是因为我正在尝试学习最佳编码实践,而这个领域对我来说似乎是灰色的。我在评论我的代码时注意到我有一个很大的部分叫做“Getters”和另一个很大的部分叫做“公共(public)方法”然后我就像......“有什么区别?!”。谢谢! 最佳答案 简单来说,PHP中的getter只是一种允许代码的其他部分访问特定类属性的方法。例如:name=$name;}//Getterpublicfunctio

php - $_SERVER ['HTTP_X_HTTP_METHOD' 是什么]

我正在阅读RESTapi的解释here那里有以下代码块:$this->method=$_SERVER['REQUEST_METHOD'];if($this->method=='POST'&&array_key_exists('HTTP_X_HTTP_METHOD',$_SERVER)){if($_SERVER['HTTP_X_HTTP_METHOD']=='DELETE'){$this->method='DELETE';}elseif($_SERVER['HTTP_X_HTTP_METHOD']=='PUT'){$this->method='PUT';}else{thrownewExc

php - 拉维尔 5.1 : Get ID from firstOrNew method

我有以下功能,如果一个记录不存在,它会在数据库中创建一个新记录-如果一个存在,它会更新它。问题是它返回true,因此我无法获得插入或更新记录的ID。/***Savetimesheet.**@param$token*@param$data*/publicfunctionsaveTimesheet($token,$data){return$this->timesheet->firstOrNew($token)->fill($data)->save();} 最佳答案 先创建新模型然后保存,id会自动设置到模型中。/***Savetimes

php - 是否有匹配 "string"和 "Object that implements __toString()"的 native 接口(interface)?

我们有实现__toString()的对象:classFoo{publicfunction__toString(){return'bar';}}然后我们有返回string或实现__toString()的对象的函数,如上面的示例。当对字符串使用返回类型string时当然有效:functiongetString():string{return'Works!';}Foo类型的返回对象不起作用,因为它不是字符串:functiongetString(Foo$foo):string{return$foo;//FatalTypeError!}是否有任何PHP接口(interface)可用于类型提示st

php - $_SERVER[REQUEST_METHOD] 是否可操作?

在我正在开发的PHP项目中,我有几个可以是POST或GET的请求。目前,我使用$_SERVER[REQUEST_METHOD]值来确定要使用哪个请求数组。我知道$_REQUEST值可以用cookie操纵,$_SERVER超全局是否容易受到攻击? 最佳答案 $_SERVER超全局变量由PHP使用从Web服务器获取的数据填充。因此,除非攻击者用他自己的Web服务器替换Web服务器,或者对服务器管理非常幸运的缓冲区溢出,否则你没问题。 关于php-$_SERVER[REQUEST_METHOD

php - 带有关键字 Interface , extends , implements 的面向对象的 PHP

在过去的几个月里,我在学习纯oop方面取得了长足的进步,现在我正在将设计模式应用到我的工作中!所以我不得不扩展我的php知识,我正在使用接口(interface),扩展它们,然后为这些接口(interface)实现类。我的问题是关于从扩展另一个接口(interface)的接口(interface)构造一个类,例如:interfaceCar{functiondoGeneralCarStuff();vinNumber=;}interfaceCompactCarextendsCar{static$numCompactCars;functiondoCompactCarStuff();}clas

php - mock & PHPUnit : method does not exist on this mock object

你能告诉我问题出在哪里吗?我有一个包含以下测试的GeneratorTest.php文件:shouldReceive('put')->with('foo.txt','foobar')->once();$generator=newGenerator($fileMock);$generator->fire();}publicfunctiontestGeneratorDoesNotOverwriteFile(){$fileMock=\Mockery::mock('\stats\jway\File');$fileMock->shouldReceive('exists')->once()->and

php - 如何解决错误 : SQL authentication method unknown in Laravel-MySql

我使用docker,并且我有一个LaravelFramework5.5.25容器和另一个带有mysqlVer8.0.11forLinuxonx86_64(MySQLCommunityServer-GPL)的容器。在我的dockercompose配置中,我有这个:version:"2"services:mysql:image:mysqlports:-"3307:3306"command:--sql_mode=""所以,当Laravel尝试连接到MySql时,出现了这个错误:SQLSTATE[HY000][2054]Theserverrequestedauthenticationmetho

php - $_SERVER ['REQUEST_METHOD' ] 默认计算为 'GET'

一直在对此进行一些挖掘,但是找不到信息我正在尝试检查表单是否已提交以及它是GET还是POST。所以基本上我使用:if($_SERVER['REQUEST_METHOD']=='GET')或if($_SERVER['REQUEST_METHOD']=='POST')但是,我发现如果我不提交任何表单,直接进入页面——一个简单的HTTP请求,REQUEST_METHOD是GET。是什么赋予了?这是设计使然吗?如果是这样,那么我就不能使用前面的语句来检查是否已通过GET提交了表单。似乎有点多余...请有更多知识的人向我解释一下,我们将不胜感激。谢谢。 最佳答案