草庐IT

get_matching_blocks

全部标签

php - __get() 和 __set() 的最佳实践

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。源于此question关于使用__get()和__set()访问私有(private)变量,我想了解一下它们的一般使用方式。我想知道何时何地是使用重载函数的最佳时机,以及您在哪里使用过重载函数(如果有的话)。为了清楚起见,我们正在谈论这些功能:http://us2.php.net/manual/en/language.oop5.magic.php

php __get() 和 __set() 魔术的要点

PHP5引入了魔术方法__get()和__set()。根据我的理解,这是必须编写每个成员的getter和setter的捷径;$var=$name;}function__get($var){return$this->$var;}}$person=newPerson();$person->firstname="Tom";$person->lastname="Brady";echo$person->firstname."".$person->lastname;//print:TomBrady?>我的问题是,这就像公开成员变量一样。classPerson{public$firstname;pu

php - 使用 preg_match 在一些字符后拆分字符串

我发现这段代码最多匹配300个字符,然后在下一个最近的分词符处中断:$var='Thisisatesttext1234567890testcheck12.'#44charspreg_match('/^.{0,300}(?:.*?)\b/iu',$var,$matches);echo$matches[0];44低于300,所以我希望输出与$var相同。但是输出是:Thisisatesttext1234567890testcheck12#43chars$matches[0]没有在末尾给我点,但是$var有。任何人都可以告诉我如何获得完整的字符串(带点)? 最佳答

php: 在某些情况下避免使用 __get?

我有一个类,我正在使用__set。因为我不希望它设置任何东西,所以我有一组已批准的变量,它会在实际设置类属性之前检查这些变量。但是,在构建时,我希望__construct方法设置几个类属性,其中一些不在批准列表中。因此,当构造发生时,我执行$this->var=$value,我当然会得到我不允许设置该变量的异常。我能以某种方式解决这个问题吗? 最佳答案 声明类成员:classBlah{private$imAllowedToExist;//noexceptionthrownbecause__set()wontbecalled}

php - 读取通过 $_GET 提供的文件

我有一个php脚本,它通过$_GET获取相对路径名,读取该文件并创建它的缩略图。我不希望用户能够从服务器读取任何文件。只应允许来自特定目录的文件,否则脚本应exit()。这是我的文件夹结构:files/我的脚本是通过mydomain.com/my_stuff/script.php?pathname=files/some.jpg访问的。什么不应该被允许e.例如:mydomain.com/my_stuff/script.php?pathname=files/../db_login.php因此,这是my_stuff文件夹中脚本的相关部分:...$pathname=$_GET['pathnam

php - 判断复选框是否被选中 php $_GET

我只想让php确定一个复选框是否被选中,但我遇到了获得正确返回的问题。请帮忙。我的html代码OneTwoThree我通过$_GET方法将值传递给php我的php代码:$aa=$_GET["aa"];$bb=$_GET["bb"];$cc=$_GET["cc"];echo$aa."";echo$bb."";echo$cc."";输出是真的错误的假的我接下来只想确定是否每个框都被选中,如果是,则执行一些操作。if($aa==true){$abc="checked";}else{$abc="notchecked";}if($bb==true){$cde="checked";}else{$c

php - 如何隐藏 GET 变量?

我正在考虑创建自动电子证书的想法。使用fpdf创建自定义证书非常容易PHP类。我设置它的方式是给定一个URLhttp://www.example.com/makepdf.php?name=myname&class=classname您将获得一个PDF证书,其中包含学生姓名和他们从$_GET变量中获取的类(class)。当然,这意味着任何人都可以操纵URL来非常轻松地创建自定义证书。(无论如何,他们可以在Photoshop中执行此操作,但其想法是让操作证书变得不那么简单。)类(class)结束后,我想向每个人发送邮件合并,并为其证书提供唯一的URL。您将如何解决这个问题?我应该只创建一组

PHP preg_match 部分 url

我正在尝试用PHP创建一个url路由器,它的工作原理与django类似。问题是,我不太了解php正则表达式。我希望能够像这样匹配url:/post/5//article/slug-goes-here/我有一组正则表达式:$urls=array("(^[/]$)"=>"home.index","/post/(?P\d+)/"=>"home.post",);数组中的第一个正则表达式与位于/的主页匹配,但我无法让第二个正则表达式工作。这是我用来匹配它们的代码:foreach($urlsas$regex=>$mapper){if(preg_match($regex,$uri,$matches)

php preg_match 噩梦

我无法理解正则表达式,感谢任何帮助!我有很多字符串数据,可能包含也可能不包含字符串“1/10”或“2/10”或“2/18”等。基本上,分子和分母都可以变化。让事情变得更复杂的是,一些数据输入运算符(operator)可能在分子和分母之间的任何地方放置了一个空格!!所以我的输入可能是:“x/y”或“x/y”或“x/y”或“x/y”或“x/y”......可能还有更多组合:(在任何这些情况下,我希望确定x和y是否为数字,以及它们之间是否有“/”斜线。对正则表达式感到绝望,请帮忙我正在用php编写代码,我想需要使用preg_match。感谢阅读。 最佳答案

php - get_class_vars() 未显示变量,但在同一类上运行的 property_exists() 返回 true

我正在学习PHP,我已经开始玩类了——下面可能是最基本的对象,哈哈。";}functionfull_name(){return$this->first_name."".$this->last_name;}}$person=newPerson();echo$person->arm_count."";$person->first_name='Lucy';$person->last_name='Ricardo';echo$person->full_name()."";$vars=get_class_vars('Person');foreach($varsas$var=>$value){ech