Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP OOP新手-需要将$u POST数据放入变量中_Php_Oop - Fatal编程技术网

PHP OOP新手-需要将$u POST数据放入变量中

PHP OOP新手-需要将$u POST数据放入变量中,php,oop,Php,Oop,我基本上是在玩OOP,并在创建一种验证和清理输入的方法时,我开始遇到清理问题,然后执行进一步的验证。我要寻找的是获取发布的$\u POST['name']数据,清理输入以删除任何数字,并验证所留下的数据既不是null,也不是数字字符 但是我无法将经过消毒的输入保存到$sanitized,它似乎是空的,但是当我替换 $sanitised=$fv->noNumbers($_POST['name']); 与 一切正常,所以我想我把这个$sanitized变量搞砸了 我想学习如何解决这个问题,或

我基本上是在玩OOP,并在创建一种验证和清理输入的方法时,我开始遇到清理问题,然后执行进一步的验证。我要寻找的是获取发布的
$\u POST['name']
数据,清理输入以删除任何数字,并验证所留下的数据既不是
null,也不是数字字符

但是我无法将经过消毒的输入保存到
$sanitized
,它似乎是空的,但是当我替换

$sanitised=$fv->noNumbers($_POST['name']);

一切正常,所以我想我把这个
$sanitized
变量搞砸了

我想学习如何解决这个问题,或者说“你是个白痴,做错了一切”,我都会非常感激

<?php
    class formSanitise {

        public function noNumbers($value) {
            $value = preg_replace('/[0-9]/', '', $value);
        }
        public function isEmpty($value) {
                    return (!isset($value) || trim($value) == '') ? true : false;
        }
        public function isAlpha($value) {
            return preg_match('/[^a-z]/i', $value) ? false : true;
        }
?>

processor.php


您需要在
非数字中创建一个值,或者传递
$value

返回方法:

public function noNumbers($value) {
            return preg_replace('/[0-9]/', '', $value);
        }
参考文献

public function noNumbers(&$value) {
            $value = preg_replace('/[0-9]/', '', $value);
        }

返回值
表示
$value
是一个完全不同的变量,从函数返回时将分配给
$sanitized
。通过引用传递意味着
$value
与传递给
非数字的变量完全相同,因此,发生在函数内部变量上的任何事情都将发生在已传入的变量上。

在上述代码段中,函数noNumbers不返回任何值。传递给函数的参数仅在该函数内有一个作用域,为了使该值可用于调用函数,必须有一个函数中的return语句,它会将值返回给调用函数。或者,您可以通过引用将值传递给函数。

noNumbers
不返回任何值。哦,您知道我如何解决这个问题,使它返回值吗?呃,添加一个
return$value语句?看,太棒了,谢谢!你能简单地解释一下return和reference方法的不同用法吗?@Dark当然!我把它添加到我的答案中。
public function noNumbers($value) {
            return preg_replace('/[0-9]/', '', $value);
        }
public function noNumbers(&$value) {
            $value = preg_replace('/[0-9]/', '', $value);
        }